Escrevendo código PHP para um arquivo
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
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.