PHP调试工具PHP DEBUG TOOLS 使用方法
一.安装篇
安装前的准备环境:必须得先装X-Debug,
至于怎样安装X-Debug请看http://www.xdebug.org/docs/install
1. 从http://www.xdebug.org/download.php下 载合适你的X-DEBUG版本
2. 解压DLL文件到PHP安装目录下的ext目录,如C:/php/ext/php_xdebug-2.0.4-5.2.8-nts.dll
3. 修改php.ini文件,加入下段:
————-偶是变态的分割线,你看不见我————————
zend_extension = “C:/php/ext/php_xdebug-2.0.4-5.2.8-nts.dll”
xdebug.collect_includes = Off
xdebug.default_enable = Off
xdebug.dump_globals = Off
xdebug.dump_once = Off
xdebug.extended_info = Off
————-偶是变态的分割线,你看不见我————————
注:This example is for non-thread safe version. For the thread safe version change “zend_extension” to “zend_extension_ts”
安装完毕,解压PHP DEBUG TOOLS压缩包里的所有文件到网站发布目录.
(假设发布目录为c:\www,那么就在其新建一个debug目录,把所有文件扔进去)
在浏览器中输入:http://localhost/debug/test1-debug.php
如果看见下图则安装成功.

二.调试篇1.Debug errors
如以下代码:
- <?php
- require ‘./lib/debug.php’;
- function test($a, $b)
- {
- echo $asd;
- }
- test(10, ‘abc’);
- ?>
复制代码

2.用Debug()来调试
如以下代码:
- <?php
- require ‘./lib/debug.php’;
- function test($args)
- {
- test_nested($args);
- }
- function test_nested($args)
- {
- debug($args);
- // or: debug(get_defined_vars());
- // or: debug();
- }
- test(array(‘id’=>123, ’str’=>’test’));
- ?>
复制代码

3.用dump()或者dump_tofile()调试
如以下代码:
- <?php
- include_once ‘./lib/dump.php’;
- function test5()
- {
- include ‘./testdata/test0.php’;
- $test = array(‘int’=>1, ‘float’=>2.0, ‘float2′=>2.1);
- dump($test, $_SERVER);
- }
- function test1() { test2(); }
- function test2() { test3(); }
- function test3() { test4(); }
- function test4() { test5(); }
- test1();
- ?>
复制代码

至于dump_tofile()一般在以下情形使用:
A.当你不想停止程序运行时
B.不是你不想显示调式数据,而是你不能.比如当你在AJAX请求状态时.
C.你还想在多处地方调式
可参见debug目录下的test7-dump_tofile.php
注:本人在运行dump()或者dump_tofile()时发现并不能出现PHP DEBUG TOOL文档中所述

这里可以通过修改debug/lib/debug.php的代码来更正.(因为dump_tofile()有调用到dump(),所以我们只需修改一处.
于149行处的
- echo $pre;
复制代码
修改成:
- //edit by benben—start
- echo ‘<script type=”text/javascript”>’;
- echo ‘document.write(‘;
- echo $pre;
- echo ‘);’;
- echo ‘</script>’;
- //edit by benben—end
复制代码
修正后的图:
4.跟踪代码,查看系统性能
可以浏览目录下的test3-trace.php,之后点右下角的控制台就可以了.
具体可参照文档.(文档在压缩包内的doc目录下)
三,如何与项目结合?
先把php debug tool的解压缩文件,放置于项目目录,建个目录就叫debug吧! : )
其实我们需要的只是几个文件而已.
比如路径为:c:\www\projectName\debug
之后,我们可以通过两种方式来调试
第一种,可以在项目源码中加入这么一句:
- include_once(‘./lib/debug.php’);
复制代码
例如以下:c:\www\projectName \hellodebug\index.php
- <?php
- include_once(‘./debug/lib/debug.php’);
- $faint = ‘helloworld ,debuging’;
- debug($arrb);
- ?>
复制代码
什 么?你不想每个页面都写这么一句?
那么看看第二种方法,
这里也有两种方式,
1.修改php.ini 加入以下内容(修改成你自身的目录):
auto_prepend_file = “c:\www\projectName\debug\auto_prepend.php”
auto_append_file = “c:\www\projectName\debug\auto_append.php”
2.修改.htaccess文件(注:此方法偶没试过,嘿嘿)
php_value auto_prepend_file “c:\www\projectName\debug\auto_prepend.php”
php_value auto_append_file “c:\www\projectName\debug\auto_append.php”
这样的话就可以方便整个项目的调试.
如果是AJAX开发的话,还有需要的地方,具体请参照文档.(因本人还 没那个需要,所以暂时先跳开了,不要拍砖,嘿嘿.
)
PHP调试工具PHP DEBUG TOOLS 使用方法的更多相关文章
- vue调试工具vue-devtools安装及使用方法
vue调试工具vue-devtools安装及使用方法 https://www.jb51.net/article/150335.htm 本文主要介绍 vue的调试工具 vue-devtools 的安装和 ...
- 在64位windows 7上安装汇编调试工具debug.exe的方法
最近我在研究汇编,书中介绍的调试工具还是基于WinXP 32bit时代中自带debug.exe进行调试,但是64bit的Windows XP.Vista.Win7.Win8都已经不自带这个工具了,网上 ...
- JMeter学习-036-JMeter调试工具之三---Debug Sampler
前面两篇文章分别讲述了 HTTP Mirror Server 和 Debug PostProcessor 的脚本调试实例.此文主要讲述第三种调试工具:DebugSampler,其主要是查看JMeter ...
- Debug Tools
.NET专用调试工具:MDBG .NET的死锁调试工具:ACorns.Debugging WinDBG+SOS(Windows平台下最强DeBug工具,是解决BUG的最后手段)
- VMware Tools安装方法及共享文件夹设置方法
正确安装好VMware Tools后,可以实现主机与虚拟机之间的文件共享, 可以设置共享文件夹,以及在主机与虚拟机之间直接进行复制黏贴的操作. 安装方法: 选择"虚拟机"-> ...
- 虚拟机中的Linux安装VMware Tools的方法
先检查虚拟机是否能上网 一:安装VMware Tools的之前必装的工具套件方法如下: Centos安装VMware Tools: [root@piaoyun-vm vmware-tools-dist ...
- 记录Debug神经网络的方法
debugNNIntroduction to debugging neural networksThe following advice is targeted at beginners to neu ...
- VMware,win7与linux centos6.4文件互传,linux下挂载windows共享文件夹,vmware tools安装方法
本方法是以win7,VMware9.0.1 ,centos6.4为基础实验的. 对于linux的初级使用阶段,都会Windows中使用linux虚拟机VMWare或者其它的.在Windows与linu ...
- 2018.3.11 Java DEBUG 调试的方法
F5:Step Into:跳进当前执行的方法中 F6:Step Over:跳过该行继续执行 F7:Step Return:从方法中跳出继续执行 F8:Resume:全部运行通过,从调试状态恢复 Ctr ...
随机推荐
- 记录 TypeError: render() got an unexpected keyword argument 'renderer' 错误
在网上看到MXShop这个项目,适合Python, Django + drf 进阶的,其中遇到 TypeError: render() got an unexpected keyword argume ...
- Emoji表情符号兼容方案
Emoji表情符号兼容方案 一 什么是Emoji emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符) 表情符号现已普遍应用于手机短信和网络聊天软件. em ...
- Python的安装部署
Python的安装部署 参考:https://www.runoob.com/w3cnote/pycharm-windows-install.html 参考:https://jingyan.baidu. ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 运算符
要介绍 MySQL 的运算符及运算符的优先级. MySQL 主要有以下几种运算符: 算术运算符 比较运算符 逻辑运算符 位运算符 算术运算符 MySQL 支持的算术运算符包括: 在除法运算和模运算中, ...
- 36. docker swarm docker secret 的使用和管理
1.secret management 的作用 用来存储 其他人不想看到 的数据 2.secret management 存在 swarm manager 节点 raft database 里. se ...
- SDWebImage缓存图片和读取图片
NSString *urlStr: NSUrl *url = [NSURL URLWithString:urlStr]; //缓存图片 SDWebImageManager *manager = [SD ...
- 用c语言实现的几个小项目
1.参考:Linux系统编程 2.参考:制作简单计算器 3.参考:制作2048小游戏 4.参考:五子棋实现
- 进程间数据共享 (multiprocess.Manager)
进程间数据共享 (multiprocess.Manager) 一.进程之间的数据共享 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队 ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之字典类型(dict)
字典!在Python中字典是另一种可变容器模型,可以存储任意类型的对象.是Python存储数据类型的最高级(maybe). 特点:1. 字典的存储方式和其他类型数据略有不同,是通过键(key)和值(v ...
- Django_JavaScript
JavaScript是什么 JavaScript是一种运行在客户端(浏览器)的编程语言,用来给网页添加动态功能. JavaScript的作用 最初目的 为了处理表单的验证操作 现在广泛的应用场景 网页 ...