如何启用PHP短标签?

时间:2010-02-02 15:44:11

标签: php tags php-shorttags

我在Linux服务器上有一个以<?

开头的Web应用程序

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

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

由于

21 个答案:

答案 0 :(得分:519)

short_open_tag=On
php.ini

中的

重新启动Apache服务器。

答案 1 :(得分: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

答案 2 :(得分: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

由于

答案 3 :(得分:18)

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

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

答案 4 :(得分: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

答案 5 :(得分:10)

您需要启用short_open_tag。

short_open_tag = On

答案 6 :(得分:10)

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

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

答案 7 :(得分: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

答案 8 :(得分:7)

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

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

答案 9 :(得分:6)

如果你编辑你的php.ini文件,记得重新启动你的服务(apache2等)以使php.ini的编辑生效

答案 10 :(得分: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

答案 11 :(得分:5)

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

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

答案 12 :(得分:1)

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

答案 13 :(得分:1)

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

  1. 打开XAMPP控制面板。
  2. 点击“配置”按钮。
  3. 转到PHP(php.ini)选项。
  4. 使用ctrl + f实用程序

    查找short_open_tag

    您会找到;short_open_tag

    请从行中删除分号(;)

    并将其保留为short_open_tag = on

    最后,重启Apache服务器

答案 14 :(得分:1)

您可以按照以下步骤操作:

1-> 转到 php.ini 内或您的 /etc/php/7.3/apache2 内的 PHP version 文件和

2-> 找到 short_open_tag 并将其设置为 On 并从开始处删除 ;

short_open_tag = On

3-> 重启服务器

sudo service apache2 restart

答案 15 :(得分:0)

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

  

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

其中xxxxx是域的套接字号。

并添加:php_value [short_open_tag] =开启

答案 16 :(得分: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字符串中的版本以匹配您当前安装的版本。

答案 17 :(得分:0)

我在aws centos 7实例和php7(PHP 7.0.33(cli)(built:Dec 6 2018 22:30:44)(NTS))上将short_open_tag从Off更改为On,但未反映php信息页面和代码。因此,我可以参考may docs并找到针对我的案例的解决方案。重新启动Apache之后,在short_open_tag之后添加 asp_tags = On 额外的一行。它适用于代码,我可以正确输出

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

答案 18 :(得分:0)

对于 docker 将这一步添加到 Dockerfile

  ARG phpIniPath=/path/to/your/php.ini

  RUN sed -i -e 's/^short_open_tag\s*=.*/short_open_tag = On/' $phpIniPath  

答案 19 :(得分:-1)

 short_open_tag = On
php.ini中的

并重新启动Apache服务器。

答案 20 :(得分:-4)

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