检查php的语法错误
通常我们是在运行php的时候,才知道有什么语法。比如把php源文件部署在apache下面,然后通过浏览器访问,发现服务器端返回了
sever 500
的错误,知道是服务器端执行我们脚本的时候出了错误,这时候可能猜测是php有语法错误,只是可能。但是如果我们能在部署到web server(比如说是apache)之前,就能检测语法错误就会节省我们的很多的调试时间。
我们先解释一下,为什么说上面的只是可能,是因为导致500错误有很多原因,比如连接数据库出错,比如读取文件出错,因此语法错误不是唯一,这样就需要调试。如果你使用的yii这样的框架来开发,并且开启了其debug标志,那么就变得比较简单,会直接在浏览器中显示对应的错误。
但是即使这样还是没有我们要说的方法简单和有效。我们所使用的就是php的可执行程序,利用它的语法检测功能:
php -l
注意是L的小写不是hi中i。
l就是php提供的检测语法的功能。
:!php %
%代表当前文件。
如果检测当前文件下面的所有的php文件,
for
i
in
*.php;
do
php -l $i;
done
所有文件包括子目录则是:
find
. -name *.php -
exec
php -l
"{}"
;
结束。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.
非常感谢,嘿嘿;
你好,问i一下我的php -l 检查文件,我的文件中明明有错误却检查不出来,错误文件如下:
<?php>
hah echo "hello world";;
<?> 请问为啥检查不出来呢
回复 liucui5201013:
我用的给的文件测试过了,可以检查到错误。
不知道你用的操作系统还有php版本都是什么。
回复 huangxiansheng1980:
版本是php5.3,apache2.2
回复 liucui5201013:
跟apache没有关系,跟你所用的php的版本和操作系统有关系。你可以是使用linux+php-cli来测试一下
回复 huangxiansheng1980:
恩 回头我再试试