PHP 字符串省略文本,因为 PHP 短标签将其包裹

PHP strings omit text because of PHP short tags wrap it

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

不幸的是,我在规范中找不到任何解释,那么,如何处理呢?我知道,我们可以转义特殊符号并且一切正常,但是这种 php 行为有什么问题?

PHP 5.3、本地服务器。

此行为可防止通过 zip_entry_read() 读取 zip 文件中的 php 行,然后使用 eval()

PHP 没有忽略您内部 <? .. ?> 中的文本,您的浏览器正在忽略它。

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

我不确定您的期望是什么,但是如果您希望标签在浏览器中显示,您必须将开头的 < 替换为 &lt;

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