由于PHP短标签包装,PHP字符串省略了文本

时间:2015-10-05 18:50:15

标签: php string escaping eval

一个简单的代码示例<?echo '<?this text is ignored?> this text is shown';?>只写“显示此文本”并忽略php标记内的文本,尽管它是一个字符串。

不幸的是,我在规格中找不到任何解释,那么,如何处理呢?我知道,我们可以逃脱特殊的符号,一切都很顺利,但这种PHP行为的问题是什么?

PHP 5.3,本地服务器。

这种行为阻止了通过zip_entry_read()来解压缩zip文件中的行,然后使用eval()

1 个答案:

答案 0 :(得分:1)

PHP不会忽略内部<? .. ?>内的文本,您的浏览器会忽略它。

就浏览器而言,放在角括号内的任何内容都是HTML标记。

我不确定您的期望,但如果您希望在浏览器中显示代码,则必须将<替换为&lt;

如果你真的想在内部php标签中执行代码,你可以继续删除内部标签,因为它们是多余的。