有人可以给我一个关于这里可能出错的指针:
档案f1.php:
<?php
include('f2.php');
档案f2:
<?php
echo "HERE";
报告错误:
`Parse error: syntax error, unexpected '=' in f1.php on line 4`
这可能是一个配置问题,但我似乎无法弄明白。
我几分钟前就问过这个问题了,但是因为过于本地化而我立即关闭,因为我引用了项目中的情况,而不是特定的情况(https://stackoverflow.com/questions/14651673/strange-php-syntax-error-issue)
更新:显然与nginx无关......如果在cli中执行相同的错误
答案 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();