“Parse error: syntax error, unexpected T_ENDWHILE in xx.php”问题解决方案
问题现象:
1、同样的代码,在某些机器上运行正常,但在特定机器上运行报错。
2、同一站点部分页面显示正常(例如<?php phpinfo();?>),但打开部分页面时,phpxx_errors.log或者页面显示错误提示“Parse error: syntax error, unexpected T_ENDWHILE in xx.php on line xx”。
错误原因:
该错误有可能是因为编写PHP脚本时丢失一个花括号(“}”),但更常见的原因是php.ini文件中short_open_tag值为Off导致的。
相关知识:PHP短标签short_open_tag
决定是否允许使用 PHP 代码开始标志的缩写形式(<? ?>
)。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 <?xml ?>
。否则还可以通过 PHP 来输出,例如:<?php echo '<?xml version="1.0"'; ?>
。如果禁用了,必须使用 PHP 代码开始标志的完整形式(<?php ?>
)。
Note: 本指令也会影响到缩写形式 <?= ,它和 <? echo 等价。使用此缩写需要设置 short_open_tag 的值为 On。不推荐使用短标签,使用<?php ?>才是规范的方法,但因为这种短标签使用的时间比较长(历史原因),为兼容老代码,这种特性才被保存了下来。
解决方案:
将php.ini文件中short_open_tag值设置为On。
相关链接:
http://xzh.i3geek.com