PHP <! - ?= foo()? - >不工作

时间:2011-10-23 13:30:35

标签: php linux codeigniter

启用short_open_tags时,echo <?=foo()?>的PHP短语法无法正常工作。我正在运行Centos6:

Linux pau.pauperis.com 2.6.35.11-83.9.amzn1.x86_64 #1 SMP Sat Feb 19 23:42:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux  

php 5.3:

PHP 5.3.8 (cli) (built: Sep 25 2011 11:33:49)

Apache 2.2:

Server version: Apache/2.2.20 (Unix)  

echo "<pre>";print_r(ini_get_all());die();放在.php文件中会显示以下内容:

    [short_open_tag] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 6
        )

phpinfo();告诉short_open_tags on

egrep -Ri 'short_open' .
./php.ini:; short_open_tag
./php.ini:short_open_tag = On

非常感谢你的答案! 通过不工作我的意思是说PHP代码没有被解析。它充当我没有PHP支持apache。尝试写入禁用short_open_tags,这就是我所看到的。 <? echo foo() ?>工作正常。 apache的日志中没有错误。

我知道不建议使用短标签,但它们用于大型CodeIgniter项目,我无法改变。 anyoen知道什么可能失败吗?

Thx in advanced!

1 个答案:

答案 0 :(得分:2)

本地标志可能与phpinfo()所承诺的不同。可以通过.htaccess.user.ini文件覆盖PHP设置。

要探测哪些实际处于活动状态,请在模板脚本中添加:

<?php print_r(ini_get_all()); ?>

这里的任何人都无法告诉您系统上发生了什么。您需要自己调试。