2009-09-23 7 views
5

Sto templatizzando il mio php.ini usando PHP. Ho uno script per configurare un ambiente di sviluppo generando httpd.conf, apachectl e php.ini dai template usando uno script PHP CLI. Sfortunatamente ci sono le stringhe letterali <? e <?php in php.ini (in un commento). È possibile sfuggire a quelli in qualche modo così php non li interpreta come normali sequenze di escape PHP?Sfuggire a un <? Php e <? in uno script PHP

Attualmente la mia soluzione è quella di metterli in una sequenza di escape vero e PHP che li emette come una stringa, come questo:

; 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 
; 

risposta

9

questo: uscita

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

Will:

<?php 
+0

Works. Non c'è davvero alcun modo per sfuggire effettivamente a rinogo

+1

No. Non c'è modo di farlo. – gahooa

0

Una soluzione rapida & sarebbe cercare attraverso il php.ini e Sostituisci tutti i commenti con i marcatori unici, dopo che il file è stato analizzato, semplicemente rimpiazza quei contrassegni unici con il tag php corrispondente.

1

Si potrebbe avvolgere l'intero heredoc all'interno ini come segue

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

che quando l'uscita non rende nella pagina, ma appare sulla sorgente della pagina
oppure è possibile utilizzare la codifica HTML per i tag

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

penso che più tardi si adatti meglio.
Se questo non funziona, è possibile utilizzare la codifica ASCII che non conosco molto su

+2

"EOF type thingy che non conosco il nome di" -> "Heredoc" – Charles

+0

La codifica HTML funzionerebbe solo se l'output fosse HTML. Non è-è un file php.ini – nohat

+0

Sì, lo pensavo. – andho