我刚刚在我的linux服务器上安装了php 5.3.1,现在我以前用标签写的旧作品根本不起作用..
请帮帮我.. 我怎么解决这个问题?
答案 0 :(得分:69)
要启用短标记,请通过以下方式之一启用short_open_tag
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中打开标题。