2009-09-23 7 views
5

Je suis en train de modéliser mon php.ini en PHP. J'ai un script pour configurer un environnement de développement en générant httpd.conf, apachectl et php.ini à partir de modèles en utilisant un script PHP CLI. Malheureusement, il y a des chaînes littérales <? et <?php dans php.ini (dans un commentaire). Est-il possible d'échapper à ceux-ci en quelque sorte que php ne les interprète pas comme des séquences d'échappement PHP normales?Echappement d'un <? Php et <? dans un script PHP

Actuellement ma solution est de les envelopper dans une vraie séquence d'échappement PHP qui les envoie sous forme de chaîne, comme ceci:

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

Répondre

9

Ce:

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

Affichera:

<?php 
+0

Works. Il n'y a vraiment aucun moyen d'échapper à ' rinogo

+1

Non. Pas moyen de le faire. – gahooa

0

Un rapide & solution simple serait de chercher dans le php.ini et remplacez tous les commentaires par des marqueurs uniques, après que le fichier a été analysé, remplacez simplement ces marqueurs uniques par l'étiquette php correspondante.

1

Vous pouvez envelopper l'ensemble ini à l'intérieur heredoc comme suit

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

qui lorsque la sortie ne rend pas la page mais apparaît sur la source
page ou vous pouvez utiliser le codage HTML pour les balises

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

Je pense que le plus tard vous conviendra mieux.
Si cela ne fait pas le travail, vous pouvez utiliser le codage ASCII dont je ne sais pas beaucoup sur

+2

"chose de type EOF dont je ne connais pas le nom" -> "Heredoc" – Charles

+0

Le codage HTML ne fonctionnerait que si la sortie était HTML. Ce n'est pas-c'est un fichier php.ini – nohat

+0

Oui je le pensais. – andho