37

我刚刚在我的 linux 服务器中安装了 php 5.3.1,现在我以前用标签编写的旧工作根本无法工作..

请帮帮我..我该如何解决这个问题?

4

5 回答 5

75

不建议您使用短标签( <? ?>)。您应该使用全长标签 ( <?php ?>)。如果您想让您的应用程序可移植,则可能在另一台服务器上不允许使用短打开标签,因此您的应用程序将中断。

另一方面,无论 php.ini 设置如何, echo 简写<?= $var ?>始终可用,并且不会被弃用。您可以使用它代替<?php echo $var; ?>

作为最后的手段,要启用短标签,请short_open_tag通过以下方式之一启用 ini 指令(很可能并非所有这些方式都适合您):

  • short_open_tag = On在你的 php.ini 中设置指令(推荐的方式);

  • 调用ini_set("short_open_tag", 1);你的代码;

  • 将以下行添加到您的 .htaccess 文件中:

    php_value short_open_tag 1


对于默认行为:

------------------------------------------------
php.ini values : short_open_tag
------------------------------------------------

PHP 4, 5_0
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : on

PHP 5_1, 5_2:
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : off

PHP 5_3:
 * Default behaviour   : on
 * php.ini-development : off
 * php.ini-production  : off

以及不鼓励短开放标签的原因:

该指令确定 PHP 是否将标签之间
<??>代码识别为 PHP 源代码,应该这样处理。几年来一直
建议您不要使用短标签“short cut”,
而是使用完整<?php?>标签组合。随着 XML 的广泛使用和其他语言对这些标记的使用,服务器很容易
混淆,并最终在错误的上下文中解析错误的代码。但是由于
这个快捷方式已经存在了很长时间,因此目前仍然
支持向后兼容,但我们建议您不要使用它们。

还要注意这拒绝了关于模板的短开放标签的 RFC:http ://wiki.php.net/rfc/shortags

于 2010-03-19T09:16:35.257 回答
10

看起来您在 php.ini 文件中将 short_open_tags 设置为“关闭”。尝试将其设置为“开”并重新启动 apache。

于 2010-03-19T09:17:24.063 回答
1

您很可能需要在 PHP 配置文件中打开短标签。在不知道您的配置的情况下,我无法说出您在哪里可以找到它,但您正在寻找 php.ini(很可能是 php.ini 之类的地方/etc/php.ini)。

在那里,您所追求的设置是short_open_tags. 有关 PHP 的所有核心配置设置,请参见此处。然而,正如其他人所提到的,使用短标签可能不是最好的策略。是对原因(赞成和反对)的很好讨论。

于 2010-03-19T09:18:46.613 回答
0

也许您的新配置不允许使用短标签。只需使用<?php ?>. 无论如何,这是更好的做法。

如果您仍然想使用它们,您可以short_open_tag指示。另请记住,如果您禁用了短标签,这将不起作用。

这样做的主要原因是您可以使用内联 Xml 标记。

于 2010-03-19T09:16:50.417 回答
0

如果你使用 wamp 或 xamp,激活它们真的很容易。只需点击 icon->php server->setting->allow short tag open

最好不要使用此功能。例如 xml 使用相同的方式打开文档中的标题。

于 2012-12-18T05:53:45.700 回答