我有一个运行在Linux服务器上的Web应用程序,它以<?
开头。
我需要将这个应用程序复制到Windows环境中,一切正常,除了一个SQL语句的渲染方式不同。我不知道这是否与脚本以<?php
而不是<?
开头有关,因为我不知道从哪里启用<?
,所以我把它改成了<?php
。
我知道这两个语句应该是相同的,但我需要测试使用<?
来确保应用程序完全相同。这样我就可以排除另一个可能性。
谢谢
我有一个运行在Linux服务器上的Web应用程序,它以<?
开头。
我需要将这个应用程序复制到Windows环境中,一切正常,除了一个SQL语句的渲染方式不同。我不知道这是否与脚本以<?php
而不是<?
开头有关,因为我不知道从哪里启用<?
,所以我把它改成了<?php
。
我知道这两个语句应该是相同的,但我需要测试使用<?
来确保应用程序完全相同。这样我就可以排除另一个可能性。
谢谢
/etc/php5/apache2/php.ini
文件中。 - Benjamin Crouzierphp --ini
命令可以定位已加载的配置文件 (已加载的配置文件:/etc/php5/cli/php.ini)。 - Wietseshort_open_tag = on
php_value short_open_tag 1
对于认为 short_open_tags 是不良实践的人们而言,从 PHP 5.4 开始,<?= ... ?>
短标签将被支持在任何地方,无论设置如何,因此如果您可以控制服务器上的设置,就没有理由不使用它们。也可以在此链接中看到:short_open_tag
<? echo $var ?>
短标签,而是<?= $var ?>
短标签。据我所知,XML不应受影响。 - RJD22<?=
的最好原因是用于模板化,我认为这是相当合理的。其他模板语言(如mustache)也使用简短的标记{{var}}
。PHP经常被用作模板语言,在内联HTML中必须写<?php echo $var ?>
比<?=$var?>
要难看得多。 - RJD22可以通过在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
。默认情况下它是关闭的,将其改为on
。
3.重启服务器,执行此命令。
service httpd restart
谢谢
为了从Ubuntu上的Vagrant安装脚本中设置短标签为开启:
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini
我看到上面所有的答案都只有部分正确。实际上,所有21世纪的PHP应用程序都将拥有FastCGI进程管理器(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
你需要开启short_open_tags。
short_open_tag = On
php.ini
文件查找 short_open_tag
并将其设置为 on
short_open_tag = On
重启服务器
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
php.ini
包含到 php-fpm.conf
中。 - miken32如果您编辑了php.ini文件,请记得重新启动服务(apache2等),以使php.ini的编辑生效。