如何启用PHP短标签?

see*_*edg 309 php tags php-shorttags

我在Linux服务器上有一个Web应用程序,它始于 <?

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

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

谢谢

cod*_*ict 537

short_open_tag=On
Run Code Online (Sandbox Code Playgroud)

php.ini中

并重新启动Apache服务器.

  • 如果PHP作为Apache模块运行,您也可以在.htaccess文件中设置它:php_flag short_open_tag on (53认同)
  • 在`/ etc/php5/apache2/php.ini`中最流行 (12认同)
  • 使用`php --ini`找到加载的配置文件(加载配置文件:/etc/php5/cli/php.ini) (6认同)
  • 如果您在 Windows 中使用 xampp,请打开 XAMPP 控制面板,单击 CONFIG 按钮并转到 PHP (php.ini) 选项。 (2认同)

RJD*_*D22 77

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

short_open_tag = on
Run Code Online (Sandbox Code Playgroud)

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

php_value short_open_tag 1
Run Code Online (Sandbox Code Playgroud)

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

  • @IanLewis我不同意.PHP短标签与ASP无关.你想要使用`<?=`的最好的理由是模板,我认为这是一个相当有效的原因.其他模板语言如胡子也使用简短的标签`{{var}}`.PHP经常被用作模板语言,并且必须要做`<?php echo $ var?>`在内联HTML中比`<?= $ var?>`更加丑陋. (6认同)
  • 短暂的标签不一定是不好的做法(我试图在这里保持开放的心态),但仅仅因为Rasmus等人.决定在PHP5.4中为它们提供默认支持并不提供使用它们的理由.使用它们可能会创建一个依赖关系,这在以后是不受欢迎的或导致与XML的混淆.这里有一些很好的讨论:http://stackoverflow.com/questions/200640/are-php-short-tags-acceptable-to-use?rq=1 (5认同)

use*_*641 19

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

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

 php --ini
Run Code Online (Sandbox Code Playgroud)

你会得到这样的东西,

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
Run Code Online (Sandbox Code Playgroud)

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

2.打开php.ini文件并查找short_open_tag.默认情况下,它会off更改为on.

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

service httpd restart
Run Code Online (Sandbox Code Playgroud)

谢谢


Bra*_*ood 18

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

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)


Edd*_*ira 12

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

Go to php.ini and set short_open_tag = On
Run Code Online (Sandbox Code Playgroud)

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

sudo service php-fpm restart
Run Code Online (Sandbox Code Playgroud)

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

sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)

  • 在我的情况下:sudo服务php7.0-fpm重启 (2认同)

Jag*_*age 10

你需要打开short_open_tags.

short_open_tag = On
Run Code Online (Sandbox Code Playgroud)


Sur*_*iya 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
Run Code Online (Sandbox Code Playgroud)

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

php_value[short_open_tag] =  On
Run Code Online (Sandbox Code Playgroud)


小智 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文件.


Ste*_*ura 6

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


Rez*_*eri 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
Run Code Online (Sandbox Code Playgroud)