【问题标题】:PHP: <?= not working / Apache configuration issue?PHP:<?= 不工作/Apache 配置问题?
【发布时间】:2012-05-02 15:19:48
【问题描述】:

我之前遇到过这个问题,但不记得是什么原因造成的。我有一个小应用程序,它使用速记符号来打印变量&lt;?=$myvar?&gt;,但它似乎没有被网络服务器解析?

关于这里可能有什么问题的任何想法?这有点奇怪,因为其他一切都正常。

谢谢!

【问题讨论】:

标签: php apache


【解决方案1】:

它是一个带有回显命令 (=) 的短打开标记。从 php 5.4 开始,它不再标记为短打开标记,因此即使 php.ini 设置 short_open_tags 从该版本开始设置为 off 也可以工作。对于早期版本,这取决于该选项。

更多信息:

http://php.net/manual/en/ini.core.php#ini.short-open-tag

您可以检查该选项,例如使用$sot = ini_get('short_open_tags');

【讨论】:

  • 我自己也正要说同样的话!供参考,php.net/manual/en/ini.core.php#ini.short-open-tag
  • 刚刚在我的回答中提到了 uri,并举例说明了如何在 php 中检查该选项
  • 谢谢,就是这样!也许您应该编辑链接以指向英文版本?
【解决方案2】:

它可能在 PHP 配置中被关闭。您是否尝试将其添加到您的脚本中?

<?php
phpinfo();
?>

无论如何,请尽量避免使用短标签,因为它们除了造成可移植性问题之外没有任何用处。 :)

【讨论】:

  • 在我看来,编写更少的代码总是更好。正如 Hajo 指出的那样,这是未来的证明,只要每个人都更新 PHP 版本 :) 感谢您的建议
  • 好吧
【解决方案3】:

不仅要检查 short_opened_tags,还要确保 AddHandler application/x-httpd-php .php 在您的 http.conf 文件中。如果它不存在,请添加它并重新启动您的 apache 服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2016-09-17
    • 2010-11-13
    • 2011-10-02
    • 2015-06-27
    相关资源
    最近更新 更多