逃避文字<! - ?php和<?在PHP脚本中 - >

时间:2009-09-23 23:50:28

标签: escaping php

我使用PHP模仿我的php.ini。我有一个脚本来通过使用CLI PHP脚本从模板生成httpd.conf,apachectl和php.ini来设置开发环境。不幸的是,php.ini中有文字<?<?php字符串(在评论中)。有可能以某种方式逃避这些,所以php不会将它们解释为正常的PHP转义序列吗?

目前我的解决方法是将它们包装在一个真正的PHP转义序列中,将它们作为字符串输出,如下所示:

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

3 个答案:

答案 0 :(得分:11)

此:

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

将输出:

<?php

答案 1 :(得分:2)

您可以将整个ini包装在heredoc中,如下所示

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

当输出未在页面中呈现但出现在页面源上时 或者您可以对标签使用html编码

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

我认为后者会更适合你。
如果不能完成这项工作,你可以使用我不太了解的ASCII编码

答案 2 :(得分:0)

快速&amp;简单的解决方案是搜索php.ini并用唯一标记替换注释中的所有内容,在解析文件后,只需用相应的php标记替换那些唯一标记。