如何启用PHP短标签?

问题描述 投票:294回答:19

我在Linux服务器上有一个以<?开头的Web应用程序

我需要将此应用程序复制到Windows环境,一切正常,但SQL语句的呈现方式不同。我不知道这是否与以<?php而不是<?开头的脚本有关,因为我不知道从哪里启用<?PHP.ini所以我把它改成了<?php

我知道这两个语句应该是相同的,但我需要用<?测试它,以确保应用程序完全相同。这样我就可以消除另一种可能性。

谢谢

php tags php-shorttags
19个回答
523
投票

short_open_tag=On

php.ini

并重新启动Apache服务器。


6
投票

如果你编辑你的php.ini文件,记得重新启动你的服务(apache2等),以便对php.ini进行编辑才能生效


5
投票

对于Wamp Server用户,有更简单的方法:您可以在WampServer图标上单击(左)单击一次,选择PHP - > PHP设置 - >短打开标记。等待一秒钟,然后WampServer将自动重启您的PHP及其Web服务。

最初来自:http://osticket.com/forums/showthread.php?t=3149


5
投票
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
;short_open_tag=Off   <--Comment this out
; XAMPP for Linux is currently old fashioned
short_open_tag = On   <--Uncomment this

1
投票

如果使用xampp,你会注意到php.ini文件有两次提到short_open_tag。启用第二个short_open_tag = On。第一个被注释掉了,您可能想要取消注释并编辑它,但它会被第二个short_open_tag覆盖


1
投票

如果您在Windows中使用xampp,请执行以下操作

  1. 打开XAMPP控制面板。
  2. 单击CONFIG按钮。
  3. 转到PHP(php.ini)选项。

使用ctrl + f实用程序查找short_open_tag

你会发现;short_open_tag

请从行中删除分号(;)。

并保持为short_open_tag = on

最后,重新启动Apache服务器


0
投票

要使用php-fpm为特定域启用short_open_tag,您必须编辑:

/etc/php5/fpm/pool.d/xxxxxxxxxx.conf

其中xxxxx是域的套接字号。

并添加:php_value [short_open_tag] =开


0
投票
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/apache2/php.ini

这适用于ubuntu 16上的php7.2,与Bradley Flood上面的答案相同,尽管存储配置文件的目录已经改变。

您还可以更改php字符串中的版本以匹配当前安装的版本。


0
投票

我在我的aws centos 7实例和php7(PHP 7.0.33(cli)(内置:12月6日2018 22:30:44)(NTS))上将short_open_tag更改为On,但它没有反映php信息页面和代码。所以我引用了可能的文档,并在我的案例中找到了解决方案。在short_open_tag之后添加一个额外的行as_atgs = On之后重新启动Apache它会对代码起作用并正确输出

php.ini文件

engine = On

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It is
; generally recommended that <?php and ?> should be used and that this feature
; should be disabled, as enabling it may result in issues when generating XML
; documents, however this remains supported for backward compatibility reasons.
; Note that this directive does not control the <?= shorthand tag, which can be
; used regardless of this directive. 
; Default Value: On   
; Development Value: Off     
; Production Value: Off  
; http://php.net/short-open-tag

short_open_tag = On

; Allow ASP-style <% %> tags   
; http://php.net/asp-tags
asp_tags = On

-1
投票
 short_open_tag = On

php.ini并重新启动Apache服务器。


-4
投票

在文件asp_tags = Onshort_open_tag = On中设置\apache\Apache2.2.21\bin\php.ini\bin\php\php5.3.8\php.ini,然后重新启动apache服务器。


75
投票

这可以通过在php.ini中启用short_open_tag来完成:

short_open_tag = on

如果您无法访问php.ini,可以尝试通过.htaccess文件启用它们,但如果您在共享主机上,托管公司可能会禁用此功能:

php_value short_open_tag 1

对于那些认为short_open_tags是php 5.4的不良做法的人来说,无论设置如何,<?= ... ?>短标签都会支持所有设置,因此如果你可以控制服务器上的设置,就没有理由不使用它们。也在这个链接中说:short_open_tag


19
投票

这可以通过在php.ini中启用short_open_tag来完成:

1.找到php.ini文件,在注释行执行

 php --ini

你会得到这样的东西,

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/curl.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/gd.ini,
/etc/php.d/json.ini,
/etc/php.d/mcrypt.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/zip.ini

请参阅注释输出中的第二行。文件将位于上述路径中。

2.打开php.ini文件,找到short_open_tag。默认情况下,它在off中将其更改为on

3.重新启动服务器,执行此注释

service httpd restart

谢谢


18
投票

要在Ubuntu上设置从Vagrant安装脚本打开的短标记:

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini

12
投票

我可以看到上面的所有答案都只是部分正确。实际上所有21世纪的PHP应用程序都将拥有FastCGI Process Manager(php-fpm),所以一旦你将php-info()添加到你的test.php脚本并检查php.ini的正确路径

Go to php.ini and set short_open_tag = On

重要提示:那么你必须重新启动php-fpm进程,这样才能正常工作!

sudo service php-fpm restart

然后最终重启你的nginx / http服务器

sudo service nginx restart

10
投票

你需要打开short_open_tag。

short_open_tag = On

10
投票

就这么简单,请按照以下步骤操作:

  1. 转到php.ini文件
  2. 找到'short_open_tag'并将其设置为on,
  3. 重启服务器

所以,short_open_tag =开


9
投票

在CentOS 6中(也在Centos 7上测试过),你不能在/etc/php.ini中为php-fpm设置short_open_tag。你会有错误:

ERROR: [/etc/php.ini:159] unknown entry 'short_open_tag'
ERROR: Unable to include /etc/php.ini from /etc/php-fpm.conf at line 159
ERROR: failed to load configuration file '/etc/php-fpm.conf'
ERROR: FPM initialization failed

您必须编辑您的站点的配置,可以在/etc/php-fpm.d/www.conf中找到并在文件末尾写入:

php_value[short_open_tag] =  On

7
投票

如果您使用UbuntuApache+php5,那么在当前版本中有2个地方需要更改为short_open_tag = On

  1. /etc/php5/apache2/php.ini - 这是通过您的Web服务器(Apache)加载的页面
  2. /etc/php5/cli/php.ini - 从命令行启动php文件时使用此配置,例如:php yourscript.php - 直接在服务器上手动或cronjob执行php文件。
© www.soinside.com 2019 - 2024. All rights reserved.