2010-03-19 48 views
31

我只是在我的Linux服务器,现在我的,我使用的标签写旧的工作不工作在所有安装了PHP 5.3.1 ..<? ?>标签不能在PHP 5.3.1

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

+0

[已解决] http://php999.blogspot.in/2015/05/how-to-enable-php-short-tags.html -----检查图片----- – indian 2015-07-14 05:19:31

回答

67

要启用短标签,在下列方式之一启用short_open_tag INI指令(最有可能不是所有的人都会为你工作):

  • 设定的指令short_open_tag = On在你的php.ini(推荐方式);
  • 在您的代码中调用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

+0

根据http ://php.net/manual/en/ini.core.php,默认是“1”,这听起来像是启用了。不过,我预计它也会在默认情况下被禁用。 – OregonGhost 2010-03-19 09:19:50

+0

@OregonGhost:这里描述的es:http://stackoverflow.com/questions/1386620/php-echo-vs-php-short-tags *实际上,在PHP 5.3.0提供的php.ini生成文件中,他们被默认禁用*我猜从5.3开始默认是关闭的。 – 2010-03-19 09:21:53

+0

@OregonGhost:你是​​正确的,但几乎总是提供一个示例配置,它将覆盖内置的默认值并选择适当的设置。我相信php.ini推荐将它们设置为关闭(尽管未经检查无法确定)。 – 2010-03-19 09:22:15

0

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

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

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

+1

没什么理由。 – 2010-03-19 09:29:05

+3

其实如果你的代码要在你没有控制权的其他服务器上运行。使用将确保可移植性。 – Sinan 2010-03-19 09:39:18

+0

这*可以是一个原因。但是,对于自己的判断,并不是严格的推荐。实际上,大部分代码并不是为了普及而编写的。并且有多种模板系统可供选择。如果有人使用PHP作为模板系统,使用长标签是荒谬的。只需选择另一个模板系统,并根本忘记这个问题 – 2010-03-19 10:02:01

10

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

1

您很可能需要在您的PHP配置文件中打开短标签。不知道你的配置,我不能说你在哪里找到它,但你正在寻找php.ini(最有可能的地方像/etc/php.ini)。

在那里,您之后的设置是short_open_tags。有关PHP的所有核心配置设置,请参见here。但正如其他人所提到的那样,使用短标签可能不是最好的策略。 Here是一个很好的讨论原因(赞成和反对)。

+0

良好的讨论与虚假的原因。 – 2010-03-19 09:26:02

+1

@Col。弹片:怎么样?由于某些原因,我总是倾向于使用短标签上的长标签。说实话,我认为它至少部分归结于个人偏好。只要你意识到这种影响,你可以使用你想要的。 – 2010-03-19 09:35:13

+0

我现在不是在谈论编码偏好,我正在谈论虚假的谣言。 – 2010-03-19 09:38:16

0

如果使用wamp或xamp,启动它们真的很容易。 只需点击图标 - > php服务器 - >设置 - >允许短标签打开

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