2009-09-23 9 views
5

Templatuję moje php.ini używając PHP. Mam skrypt do skonfigurowania środowiska programistycznego poprzez generowanie httpd.conf, apachectl i php.ini z szablonów przy użyciu skryptu CLI PHP. Niestety są dosłowne ciągi <? i <?php w php.ini (w komentarzu). Czy w jakiś sposób można uciec przed nimi, więc php nie interpretuje ich jako normalnych sekwencji ucieczki z PHP?Ucieczka z literału <? Php i <? w skrypcie PHP

Obecnie mój obejście jest zawinąć je w sekwencji ucieczki rzeczywistym PHP, który wyprowadza je jako ciąg znaków, na przykład:

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

Odpowiedz

9

następująco: wyjście

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

będzie:

<?php 
+0

Działa. Naprawdę nie ma sposobu, aby uciec przed ' rinogo

+1

Nie. Nie ma sposobu, aby to zrobić. – gahooa

0

Szybkie proste rozwiązanie to przeszukiwanie plików php.ini i zamień wszystkie komentarze na unikalne znaczniki, po przeanalizowaniu pliku, po prostu zamień te unikatowe znaczniki z odpowiednimi znacznikami php.

1

Można owinąć całą ini wewnątrz heredoc następująco

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

Które gdy wyjście nie czynią na stronie, ale pojawia się na źródła strony
lub użyć kodowania HTML dla tagów

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

Myślę, że ci później będzie ci pasować.
Jeśli to nie działa, możesz użyć kodowania ASCII, o którym nie wiem zbyt wiele,

+2

"Rzecz typu EOF, której nazwy nie znam" -> "Heredoc" – Charles

+0

Kodowanie HTML działałoby tylko wtedy, gdy dane wyjściowe były w formacie HTML. To nie jest - to plik php.ini. – nohat

+0

Tak, tak myślałem. – andho

Powiązane problemy