【问题标题】:Short tags on, but code not executing短标签打开,但代码未执行
【发布时间】:2012-09-17 11:20:13
【问题描述】:

让我在前面说,我不希望这成为关于您是否应该使用短标签的讨论。我正在尝试运行一个遗留系统,它有数千个 php 代码文件,并且在没有任何错误的情况下更改它们并不是我们想要使用的解决方案。

话虽如此,我在 php.ini 中启用了短标签。我已经通过在相关文件中运行phpinfo(); 并检查那里的设置来验证设置是否生效。但是,<?<?= 短打开标记内的代码没有被执行,它只是像 HTML 一样打印出来。有人知道为什么会发生这种情况吗?正常<?PHP 打开标签内的 PHP 代码正在正常执行。原来服务器运行的是PHP 5.3,由于5.4中短标签的变化,我们尝试升级到5.4.7,还是没有成功。

重复 cmets 中的内容:我通过将 phpinfo() 添加到使用短打开和正常打开标签的文件中并在浏览器中打开它来运行它。完整的标签被执行,short 没有。我没有从命令行运行它。 Apache 已重新启动。编辑的 php.ini 文件是主 /etc/php.ini 文件。没有 .htaccess 文件更改 webroot 中的设置。

【问题讨论】:

  • 您尝试过<?<?php 在同一个文件中吗?
  • 您是否从命令行检查了phpinfo()?命令行和 apache 模块 PHP 可能使用不同的 php.ini 文件。此外,无论您在哪里做 phpinfo() 的短开放标签都可以工作吗?
  • 您在共享主机上吗?有时他们有一个“主” php.ini,在某些指令中不能被本地的覆盖。此外,CLI 本身有一个 php.ini,您可能修改了错误的
  • 不是本地的php.ini,是master的。我完全控制了服务器。 phpinfo() 被添加到 php 文件中并运行。两个标签我都试过了,完整的标签不行。

标签: php apache


【解决方案1】:

您在更改 php.ini 文件后是否重新启动了 Web 服务器?您必须这样做才能使设置生效..

【讨论】:

  • 是的,服务器已重新启动。这可以通过放置在文件中的phpinfo() 来进一步验证,返回短标签的正确值。
【解决方案2】:

唯一似乎未检查的是 ini 文件中的值在某处被覆盖。

也许是过分热心的开发人员在 .htaccess 文件中禁用了它,使用 ini_set()somewhere else

【讨论】:

  • 我也检查过 - 没有任何 .htaccess 文件设置它,我什至自己尝试了ini_set(),强制它。
猜你喜欢
  • 2017-07-02
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 2023-04-08
  • 2017-08-09
  • 2018-02-27
相关资源
最近更新 更多