我在Linux服务器上有一个以<?
我需要将此应用程序复制到Windows环境,一切正常,但SQL语句的呈现方式不同。我不知道这是否与以<?php
开头而不是<?
的脚本有关,因为我不知道从<?
启用PHP.ini
的位置所以我将其更改为<?php
我知道这两个语句应该是相同的,但我需要用<?
来测试它,以确保应用程序完全相同。这样我就可以消除另一种可能性。
由于
答案 0 :(得分:519)
答案 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)
就这么简单,请按照以下步骤操作:
所以, 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)
如果您将Ubuntu
与Apache+php5
一起使用,那么在当前版本中有2个地方需要更改为short_open_tag = On
/etc/php5/apache2/php.ini
- 这是通过您的网络服务器(Apache)/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服务。
答案 12 :(得分:1)
如果使用xampp,你会注意到php.ini文件有两次提到short_open_tag。启用第二个short_open_tag = On。第一个被注释掉了,您可能想要取消注释并编辑它,但它会被第二个short_open_tag覆盖
答案 13 :(得分:1)
如果您在Windows中使用xampp,请执行以下操作
使用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 = On
和short_open_tag = On
中设置\apache\Apache2.2.21\bin\php.ini
和\bin\php\php5.3.8\php.ini
,然后重新启动apache服务器。