2009-09-23 10 views
5

Estoy instalando mi php.ini usando PHP. Tengo un script para configurar un entorno de desarrollo generando httpd.conf, apachectl y php.ini a partir de plantillas usando un script CLI PHP. Desafortunadamente hay cadenas literales <? y <?php en php.ini (en un comentario). ¿Es posible escapar de alguna manera para que php no los interprete como secuencias normales de escape de PHP?Escapando literalmente <? Php y <? en un script PHP

Actualmente mi solución es colocarlos en una secuencia de escape real de PHP que les da salida como una cadena, así:

; This directive determines whether or not PHP will recognize code between 
; <?php echo "<? and ?>" ?> tags as PHP source which should be processed as such. It's been 
; recommended for several years that you not use the short tag "short cut" and 
; instead to use the full <?php echo "<?php and ?>" ?> tag combination. With the wide spread use 
; 

Respuesta

9

Este: salida

<?php echo "<?php"; ?> 

Will:

<?php 
+0

Works. ¿De verdad no hay forma de escapar realmente de ' rinogo

+1

No. No hay forma de hacerlo. – gahooa

0

Una solución simple & rápida sería buscar a través de php.ini y reemplace todo dentro de los comentarios con marcadores únicos, después de que el archivo haya sido analizado, simplemente reemplace esos marcadores únicos con la etiqueta php correspondiente.

1

Usted puede envolver todo el heredoc dentro ini de la siguiente manera

<?php 
echo <<< EOF 
<?php echo "stuff inside php tag"; ?> 
EOF; 
?> 

Qué cuando la salida no se presenta en la página, pero aparece en la fuente de la página
o puede utilizar la codificación HTML para las etiquetas

&lt;?php echo 'this'; ?&gt; 

Creo que lo último le conviene más.
Si eso no hace el trabajo, podría utilizar la codificación ASCII que no sé mucho sobre

+2

"Tipo de EOF que no conozco el nombre de" -> "Heredoc" – Charles

+0

La codificación HTML solo funcionaría si el resultado fuera HTML. No lo es, es un archivo php.ini – nohat

+0

Sí, eso creía. – andho