Pergunta

Eu tenho as variáveis do PHP para colocar dentro de um arquivo HTML.Qual é a melhor maneira de executar isso?

//contents of file1.php
$variable1 = "text 1";
$variable2 = "text 2"
$newContent = include('file2.php');
echo $newContent;

//contents of file2.php
<p>standard HTML with PHP... <strong><?=$variable1?></strong></p>
<p><?=$variable2?></p>

Este método geral é considerado OK, mas o código real, aqui não funciona.Eu uso file_get_contents() ou incluir(), como faço para executar o PHP no arquivo de saída para o conteúdo correto?

Eu deveria estar usando algo como HTML>>>

Foi útil?

Solução

O que você está fazendo é bom, e você vai descobrir que a maioria das pessoas usa o mesmo método exato.Eu, pessoalmente, não iria usar o PHP tags curtas (alguns hosts não ativá-lo), mas isso é uma questão de preferência.

Editar: Como por sua editar, parece que você não tem tags curtas habilitado.Verifique sua ini (http://php.net/manual/en/ini.core.php).Mas você realmente não deveriam estar usando tags curtas, porque, como clownbaby menciona, PHP 6 vai depreciar-los.Mesmo se você não se preocupa com o futuro de verificação de código, eles ainda são problemáticos (que é evidente, porque o código não está funcionando).Mude para <?php echo $variable1; ?> e você vai ficar bem.

Outras dicas

Eu acho que o seu código está bem, apesar de a maioria dos quadros de usá-lo...

sobre o uso de tags curtas, alguns servidores não permitem isso, então aqui está uma solução que eu uso:

if ((bool) @ini_get('short_open_tag') === FALSE){
   echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents("path/to/file2.php"))));
}else{
   $newContent = include("path/to/file2.php");
   echo $newContent;
}
$newContent = include('file2.php');
echo $newContent;

- Você não precisa echo nada aqui.Apenas incluindo o arquivo PHP deve executar o código dentro dele e cuspir interpolados modelo para a página.Enquanto não há tal coisa como retornando um valor de include, é um recurso raramente utilizado geralmente você pode ignorar.

Como ekhaled disse, você pode necessitar de habilitar tags curtas ou substituí-los sempre suportadas <?php ... ?> processamento-instrução-sintaxe de estilo.

No entanto, é importante htmlspecialchars cada seqüência de caracteres de texto quando, incluindo-o no HTML, ou você tem um potencial de XSS brecha de segurança.

<?php
    function h($text) {
        echo(htmlspecialchars($text, ENT_QUOTES));
    }
?>
...

<p>standard HTML with PHP... <strong><?php h($variable1) ?></strong></p>
<p><?php h($variable2) ?></p>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top