Pregunta
Me pregunto si es posible escribir código PHP en un archivo. Por ejemplo:
fwrite($handle, "<?php $var = $var2 ?>");
Me gustaría que producen la cadena exacta en el archivo y no el código eval'ed. ¿Es esto posible?
Actualmente estoy recibiendo el siguiente salida (donde $ var = 1 y $ var2 = 2):
<?php 1 = 2 ?>
Mientras que yo quiero la cadena real:
<?php $var = $var2 ?>
Gracias por la ayuda
Solución
Puede utilizar comillas simples en lugar de comillas dobles, que no se expanden los nombres de variables en línea:
fwrite($handle, '<?php $var = $var2 ?>');
Otros consejos
Sólo escapar el símbolo $
<?php
fwrite($handle, "<?php \$var = \$var2 ?>");
?>
cadenas entre comillas dobles se analizan las variables, y se inserta el valor de las variables en esa posición. supongo que esto es porque php originalmente fue diseñado como una capa de plantillas servidor web-base de datos delgada.
personalmente, no me gusta eso y nunca uso comillas dobles debido a esto. En cambio, yo siempre uso las comillas simples y concenation cadena:
<?php echo 'hello, ' . $name; ?>
hace lo mismo que:
<?php echo "hello, $name"; ?>
comillas simples: coloreado de sintaxis funciona mejor, es (ligeramente) más rápido y más fácil se encuentren errores
Esto no tiene nada que ver con io archivo. Lea acerca de la sustitución de variables y escapar de las cadenas en PHP.