【问题标题】:Why is "<?" no longer working and instead only "<?php" works?为什么是“<?”不再工作,而是只有“<?php”工作?
【发布时间】:2010-09-30 22:41:43
【问题描述】:

我使用xampp 进行本地开发,然后我从直接安装程序中安装了 PHP。现在在我的一些 PHP 代码中,只有以 "&lt;?php" 开头的 PHP 代码被正确解析。任何以 "&lt;?" 或 "&lt;?=" 开头的内容都被完全忽略并保持原样。

如何调整配置以解析任一令牌?

【问题讨论】:

  • 你不应该使用它们,因为它们会破坏 xml 声明

标签: php xampp


【解决方案1】:

这是一个名为 php.ini 的设置

short_open_tag = 1 # (enabled)

【讨论】:

  • 是的,我知道,但是哪些设置?
【解决方案2】:

我建议您禁用 short_open_tag 并仅使用 &lt;?php。当short_open_tag 启用时,它可能与XML processing instruction &lt;?xml 发生冲突,因为PHP 打开标记和XML PI 都以&lt;? 开头。

【讨论】:

  • 你可以通过这样做来回避它: echo "
【解决方案3】:

通过仅使用 作为启动预处理器启动,您可以将预处理器与格式良好的 XML 文档混淆。 XML 代表 代表 processing-instruction,想象一个嵌入了 XML 的 XHTML 文档需要 XSLT 处理...预处理器会与样式表处理指令混淆并抛出一个错误。

强烈推荐使用 处理器开始标签,尝试使用 short_open_tag = 在您的 php.ini 中关闭。另外,如果遇到问题,可以尝试使用&lt;?php ini_set('short_open_tag', 'On'); &gt;

【讨论】:

    【解决方案4】:

    您可以在 php.ini 中设置 short_open_tag = On

    【讨论】:

      【解决方案5】:

      这是一个配置选项,更多信息请参见:http://www.php.net/ini.core(查找 short_open_tag)。

      【讨论】:

        【解决方案6】:

        对于较新的版本:

        short_open_tag = On
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-27
          • 2021-11-01
          • 2020-06-15
          • 2010-10-23
          • 2010-12-23
          • 1970-01-01
          • 2013-07-01
          相关资源
          最近更新 更多