老鸟有一本《PHP调试手册》在网络上风行,不管老鸟还是嫩鸟,这篇文章的作用是介绍一些简单易行的PHP调试实战技术,希望大家能提出宝贵意见,共同进步。
(一)打印输出
使用echo/print/print_r/var_dump+exit/die在制定位置输出调试结果,并终止程序执行。
这招在php的ajax请求中不太好使,如果ajax是get方式的请求,我们可以在浏览器中输入ajax的url来输出我们的调试信息,但如果是post方式,改方法就有点力不从心了。
(二)打开php的错误提示功能
1.将php.ini文件中的display_errors设置为1或On,然后重启apache使之生效。
2.在php程序中,使用set_ini('display_errors', 'On')函数来动态显示程序的错误信息。
在程序中动态显示错误的设置必须保证在错误发生之前执行,所以最好是把它放在程序入口的地方。
(三)查看apache错误日志
1.在linux环境中,可以使用
tail /your/path/to/error_file
来查看apache中发生的最新的错误日志。
2.windows下,直接用记事本打开apache的错误日志文件查看就可以了。
(四)XDebug/ZendDebug
XDebug可以实现远程调试功能,它主要有两大特色:
1.输出信息格式化。
它重写了系统的var_dump函数,可以让输出的数据更加工整、美观,方便查看。唯一的缺点是,当显示的数据量很大的时候,它会隐藏未能现实的部分。
2.远程调试功能。
XDebug工作过程主要由两部分组成:Xdebug Server, Xdebug Client。看上去,它有点像寄生在apache中的后门程序。它的工作原理如下,
XDebug Client-----------(带xdebug session信息的远程页面请求)----------->XDebug Server(可以配置响应请求的主机和端口)
XDebug Client<---------(连接信息确认,并返回请求页面数据)------------------XDebug Server
XDebug Client-----------(发送breakpoint、AddWatch等调试命令)---------->XDebug Server
XDebug Client<---------(接收Server返回的PHP执行状态信息)------------------XDebug Server
......
XDebug Client-----------(带xdebug session信息的远程页面请求终止)-------->XDebug Server(断开连接)
在PHPEclipse中使用XDebug:
1.安装XDebug扩展,详细步骤请参考其他网络资源。
2.在PHPEclipse中设置XDebug
(1)指定使用XDebug调试器
(2)指定PHP的可执行文件路径
(3)设置远程主机及端口
(4)设置请求站点和用于调试的浏览器
(5)按F11开始调试吧。
本文尚不完整,等有时间了再进行进一步的整理。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wirror800/archive/2010/10/30/5975653.aspx