Pergunta

Eu estou querendo saber se é possível escrever código PHP em um arquivo. Por exemplo:

fwrite($handle, "<?php $var = $var2 ?>");

Gostaria que produzem exatamente a string no arquivo e não o código eval'ed. Isso é possível?

Atualmente, estou recebendo o seguinte resultado (onde $ var = 1 e $ var2 = 2):

<?php 1 = 2 ?>

Considerando que eu quero a seqüência real:

<?php $var = $var2 ?>

Obrigado pela ajuda

Foi útil?

Solução

Você pode usar aspas simples em vez de aspas duplas, que não se expandam nomes em linha variáveis:

fwrite($handle, '<?php $var = $var2 ?>');

Outras dicas

Apenas escapar do símbolo $

<?php
fwrite($handle, "<?php \$var = \$var2 ?>");
?>

cordas duplas citadas são analisados ??para variáveis, e o valor de variáveis ??é inserido nessa posição. Acho que isso é porque o PHP foi originalmente concebido como uma camada de templates servidor do banco de dados fina.

Pessoalmente, eu não gosto disso e nunca usar aspas duplas por causa disso. em vez disso, eu sempre usar aspas simples e concenation string:

<?php echo 'hello, ' . $name; ?>

faz o mesmo que:

<?php echo "hello, $name"; ?>

aspas simples: coloração de sintaxe funciona melhor, é (ligeiramente) mais rápido e os erros são encontrados mais fácil

Isto não tem nada a ver com io arquivo. Leia sobre substituição de variáveis ??e escapar em strings em PHP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top