PHP语法错误问题(带有测试用例)

时间:2013-02-01 18:02:15

标签: php configuration

有人可以给我一个关于这里可能出错的指针:

档案f1.php:

<?php

include('f2.php');

档案f2:

<?php
echo "HERE";

报告错误:

`Parse error: syntax error, unexpected '=' in f1.php on line 4`
  • 在nginx 1.2.6上使用php-fpm 5.4。
  • 文件没有BOM标记。
  • 服务器没有硬件问题。

这可能是一个配置问题,但我似乎无法弄明白。

我几分钟前就问过这个问题了,但是因为过于本地化而我立即关闭,因为我引用了项目中的情况,而不是特定的情况(https://stackoverflow.com/questions/14651673/strange-php-syntax-error-issue

更新:显然与nginx无关......如果在cli中执行相同的错误

2 个答案:

答案 0 :(得分:2)

好像我已经解决了......

短篇小说:
使用--enable-zend-multibyte重新编译PHP。

长篇故事:
我尝试了所有可以想象的东西......逐字节检查源文件,没有找到任何问题。我已经尝试在php中获取文件内容并从insidde php回显字节数组,在这种情况下也没有找到问题。
我已经尝试使用调试符号重新编译php,但是这个过程以0377结束,而gdb没有任何用处。

无论我做了什么,uppon点击一个include语句(或它的变体)我在包含文件的最后一行上面得到了语法错误。

我希望这些文件有BOM(几乎所有人都建议我这样做)。所以我认为必须关于如何运行php以及尝试更改环境变量(如LC_ * vars),但同样没有结果。

所以最后我有一个add-configure-option-and-recompile-php会话...不确定为什么所有脚本都不包含多字节字符,并且没有BOM标记之前所述,但重新编译PHP之后使用--enable-zend-multibyte,代码开始按预期工作。

感谢大家的建议。

答案 1 :(得分:0)

如果您正在使用APC,则说明您没有更新上一个字节代码。

尝试apc_clear_cache();