Suporte » Temas » syntax error, unexpected T_FUNCTION

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • Qual a versão do seu PHP? o método certo de utilizar o callback é através da função create_function.
    Dê uma olhada na referência:
    http://php.net/manual/pt_BR/function.preg-replace-callback.php

    Funções em modo closure, só são suportadas a partir do PHP 5.3.0. Pode ser uma possibilidade da causa do erro. Vale a pena tentar.

    Criador do tópico luciana.og

    (@lucianaog)

    A versão é a mais atual.

    O tópico quebrou todo, tenta editar seu primeiro comentário e colocar o código entre acentos craseados para formatar.

    O erro pode estar relacionado com algo antes ou após a linha indicada, posta o código completo desse trecho. Pode ser que fique mais claro.

    Criador do tópico luciana.og

    (@lucianaog)

    <?php
    extract(shortcode_atts(array(
    ‘icon’ => ”,
    ‘title’ => ”,
    ‘el_id’ => ”,
    ‘el_class’=>’none’,
    ‘parent’ => ”,
    ‘expanded’=> ”
    ), $atts));
    ?>
    <div class=”panel panel-default”>
    <div class=”panel-heading”>
    <h4 class=”panel-title”>
    <i class=”fa <?php echo esc_attr($icon);?>”></i>
    ” data-toggle=”collapse” data-parent=”#<?php if( $parent ){ echo esc_html( $parent );}else{ echo ‘accordion’;}?>”><?php echo esc_attr($title); ?>
    </h4>
    </div><!–end panel heading –>
    <div class=”panel-collapse collapse<?php if( $expanded ){echo ‘ in’;}?>” id=”<?php echo esc_attr( $el_id );?>”>
    <div class=”panel-body”>
    <?php if( $el_class !=’none’ ){?>
    <div class=”<?php echo esc_html( $el_class);?> items”>
    <?php
    $content = strip_tags( $content, ‘

    • ‘);
      $content = preg_replace_callback(‘/
    • ([ \w\s]+):(.*)<\/li>/im’, function( $matches ){
      return “<li class=’col-sm-6′ ><i class=’fa fa fa-arrow-circle-o-right’></i> <p>{$matches[1]}: <span>{$matches[2]}</span></p>
    • “;
      }, $content);
      echo str_replace(‘

      ‘, ‘<ul class=”clearfix”>’, $content);
      ?>
      </div><!– end items –>
      <?php }else{?>
      <p><?php echo apply_filters( ‘the_content’, $content);?></p>
      <?php }?>
      </div>
      </div><!–end panel -collapse –>
      </div><!–end panel –>

    Ele informa que o erro está na linha 24, ou seja, neste código:

    $content = preg_replace_callback(‘/

    • ([ \w\s]+):(.*)<\/li>/im’, function( $matches ){

    Luciana, por favor coloca o código entre CRASES paras para não quebrar na visualização, não está dando para entender nada.

    Criador do tópico luciana.og

    (@lucianaog)

    Pode me informar seu e-mail por favor?

    Suporte apenas pelo fórum. Basta formatar o código que a visualização fica mais legível, basta editar o código e colocar entre aspas invertidas

    Com formatação ele fica assim, mais bacana de ler:

    $i = 1;
    for (; ; ) {
        if ($i > 10) {
            break;
        }
        echo $i;
        $i++;
    }

    Criador do tópico luciana.og

    (@lucianaog)

    <div class="panel panel-default">
    	<div class="panel-heading">
    		<h4 class="panel-title">
    			<i class="fa <?php echo esc_attr($icon);?>"></i>
    			<a href="#<?php echo esc_attr( $el_id );?>"  data-toggle="collapse" data-parent="#<?php if( $parent ){ echo esc_html( $parent );}else{ echo 'accordion';}?>"><?php echo esc_attr($title); ?></a>
    		</h4>
    	</div><!--end panel heading -->
    	<div class="panel-collapse collapse<?php if( $expanded ){echo ' in';}?>" id="<?php echo esc_attr( $el_id );?>">
    		<div class="panel-body">
    			<?php if( $el_class !='none' ){?>
    			<div class="<?php echo esc_html( $el_class);?> items">
    				<?php
    					$content = strip_tags( $content, '<ul><li>');
    $content = preg_replace_callback('/<li>([ \w\s]+):(.*)<\/li>/im', function( $matches ){
    	return "<li class='col-sm-6' ><i class='fa fa fa-arrow-circle-o-right'></i> <p>{$matches[1]}: <span>{$matches[2]}</span></p></li>";
    						}, $content);
    					echo str_replace('<ul>', '<ul class="clearfix">', $content);
    				?>
    			</div><!-- end items -->
    			<?php }else{?>
    			<p><?php echo apply_filters( 'the_content', $content);?></p>
    			<?php }?>
    		</div>
    	</div><!--end panel -collapse -->
    </div>

    Qual o objetivo desse replace? Você está pegando uma lista que o usuário insere no conteúdo e substituindo por outra lista? Essa lista é gerada manualmente? Não consigo ver a origem da variável $content.

    Além disso, você utiliza o strip_tags para remover <ul> e <li> antes de executar o regex, e o regex busca por <li> certo? Isso retorna alguma coisa?

    Eu recomendaria que você mude este processo, está muito gambiarrado.

    Criador do tópico luciana.og

    (@lucianaog)

    É um tema que meu cliente comprou, eu nem alterei nada, neste link http://comunicasite.com.br/real/ está informando o arquivo com erro. E o código abaixo, é o código completo que está neste arquivo.

    <?php
    extract(shortcode_atts(array(
        'icon' => '',
        'title' => '',
        'el_id' => '',
        'el_class'=>'none',
        'parent' => '',
        'expanded'=> ''
    ), $atts));
    ?>
    <div class="panel panel-default">
    	<div class="panel-heading">
    		<h4 class="panel-title">
    			<i class="fa <?php echo esc_attr($icon);?>"></i>
    			<a href="#<?php echo esc_attr( $el_id );?>"  data-toggle="collapse" data-parent="#<?php if( $parent ){ echo esc_html( $parent );}else{ echo 'accordion';}?>"><?php echo esc_attr($title); ?></a>
    		</h4>
    	</div><!--end panel heading -->
    	<div class="panel-collapse collapse<?php if( $expanded ){echo ' in';}?>" id="<?php echo esc_attr( $el_id );?>">
    		<div class="panel-body">
    			<?php if( $el_class !='none' ){?>
    			<div class="<?php echo esc_html( $el_class);?> items">
    				<?php
    					$content = strip_tags( $content, '<ul><li>');
    $content = preg_replace_callback('/<li>([ \w\s]+):(.*)<\/li>/im', function( $matches ){
    	return "<li class='col-sm-6' ><i class='fa fa fa-arrow-circle-o-right'></i> <p>{$matches[1]}: <span>{$matches[2]}</span></p></li>";
    						}, $content);
    					echo str_replace('<ul>', '<ul class="clearfix">', $content);
    				?>
    			</div><!-- end items -->
    			<?php }else{?>
    			<p><?php echo apply_filters( 'the_content', $content);?></p>
    			<?php }?>
    		</div>
    	</div><!--end panel -collapse -->
    </div><!--end panel -->
Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • O tópico ‘syntax error, unexpected T_FUNCTION’ está fechado para novas respostas.