标签在php 5.3.1中不起作用

时间:2010-03-19 09:14:03

标签: php php-shorttags

我刚刚在我的linux服务器上安装了php 5.3.1,现在我以前用标签写的旧作品根本不起作用..

请帮帮我.. 我怎么解决这个问题?

5 个答案:

答案 0 :(得分:69)

要启用短标记,请通过以下方式之一启用short_open_tag ini指令(最有可能并非所有指令都适合您):

  • 在php.ini中设置指令short_open_tag = On推荐方式);
  • 在您的代码中致电ini_set("short_open_tag", 1);;
  • 将以下行添加到.htaccess文件中:

    php_value short_open_tag 1


更多解释:

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

另一方面,回显速记<?= $var ?>enabled by default since PHP 5.4 regardless of php.ini settings,不会弃用。您可以使用它而不是<?php echo $var; ?>

对于默认行为:

------------------------------------------------
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源,应该如此处理。它一直是   推荐几年你不使用短标签“捷径”和
  而是使用完整的<?php?>标记组合。随着广泛使用   通过XML和其他语言使用这些标签,服务器可以轻松实现   困惑并最终在错误的上下文中解析错误的代码。但是因为
  这个捷径已经很长一段时间了,目前还在   支持向后兼容性,但我们建议您不要使用它们。

另请注意,这拒绝了有关模板短开标记的RFC:http://wiki.php.net/rfc/shortags

答案 1 :(得分:10)

看起来你的php.ini文件中的short_open_tags设置为“Off”。 尝试将其设置为“On”并重新启动apache。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

也许你的新配置并不是所有的短标签。只需使用<?php ?>即可。无论如何,这是更好的做法。

如果您仍想使用它们,可以short_open_tag指令。另请注意,如果您禁用了短标签,则无效。

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

答案 4 :(得分:0)

如果你使用wamp或xamp,它们很容易激活它们。 只需点击icon-&gt; php server-&gt; setting-&gt;允许短标记打开

最好不要使用此功能。例如,xml使用相同的方法在docs中打开标题。