现在的位置: 首页 > 综合 > 正文

PHP Debug实战技术

2012年11月08日 ⁄ 综合 ⁄ 共 1290字 ⁄ 字号 评论关闭

老鸟有一本《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开始调试吧。

 

本文尚不完整,等有时间了再进行进一步的整理。

抱歉!评论已关闭.