如何使用FireFox插件FirePHP调试PHP


Posted in PHP onJuly 23, 2013

如果你和我一样,你会在开发网页项目时候完全无法离开FireBug。这个小巧的"臭虫"是一个神奇而有用的HTML/CSS/JavaScript/Ajax调试器。但是你也许不知道这个还可以用来调试PHP,没错,它可以,感谢一款名为FirePHP的FireFox插件。

通过一个小小的服务端库,和这款在Firebug上的插件,你的PHP脚本能够发送调试信息到浏览器,轻易的通过HTTP相应头编码。一旦你设置,你可以在Fiirebug的控制台获得PHP脚本警告和错误,就感觉像直接调试JavaScript一样

使用这个工具,首先你需要安装FirePHP插件。这个插件需要你已经安装FireBug。装好FirePHP之后,重新打开Firebug面板时候,你会看到新加了一个蓝色的臭虫图标。点击这个图标会出现一个开启或者关闭FirePHP的菜单。

如何使用FireFox插件FirePHP调试PHP

 

当然,这时候我们还无法做任何事,你还需要安装FirePHP的服务端。这是一个独立的版本,你可以手动下载或者使用PEAR。装后之后,你可是轻松的将这个库加入你的代码。它被设计了很多版本来整合入多个框架或者管理系统,比如 WP-FirePHP plugin for WordPress 和 JFirePHP plugin for Joomla。暂时不管这些,我们将把精力集中在独立的功能上。

一旦你在你服务器上部署了FirePHP库,你还需要在你的代码中加入以下的代码:
require_once('FirePHPCore/fb.php');

这是因为FirePHP通过HTTP头发送记录的数据,你需要缓存你的代码产生的输出,从而来响应头信息从这里获取代码生成的内容。这个可以通过在代码头部的ob_start来实现。

ob_start();
当这些步骤完成后,你可以开始使用FirePHP了。你需要做的只是调用fb函数在任何你想要记录的地方。同时你也可以使用一个可选的标签和常量去定义预定义信息,一个错误,一个警告,或者一条信息。

$var = array('a'=>'pizza', 'b'=>'cookies', 'c'=>'celery');  
fb($var);  
fb($var, "An array");  
fb($var, FirePHP::WARN);  
fb($var, FirePHP::INFO);  
fb($var, 'An array with an Error type', FirePHP::ERROR); 

这些代码将在Firebug控制台输出如下所示

如何使用FireFox插件FirePHP调试PHP

你也可以使用FirePHP来跟踪你程序的执行情况:通过使用FirePHP::TRACE常量,你可以在fb被调用的地方查看行数、类名和方法名

function hello() {  
   fb('Hello World!', FirePHP::TRACE);  
 }  
 function greet() {  
   hello();  
 }  
 greet(); 

产生的输出如下

如何使用FireFox插件FirePHP调试PHP

这个跟踪功能可以完美的调试更复杂的代码,让你精确的知道你的方法是在哪里被调用的。
当然,别忘了你需要在你代码发布之前移除你的调试语句。
这里还有很多FirePHP的内容没有涉及到。我只是向你简单展示一下FirePHP的API,还有很多高级的面向对象API。

PHP 相关文章推荐
PHP 文件上传全攻略
Apr 28 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php强制用户转向www域名的方法
Jun 19 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 PHP
PHP时间格式控制符对照表分享
Jul 23 #PHP
利用curl抓取远程页面内容的示例代码
Jul 23 #PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 #PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 #PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 #PHP
php的数组与字符串的转换函数整理汇总
Jul 18 #PHP
使用PHP编写的SVN类
Jul 18 #PHP
You might like
php实现mysql同步的实现方法
2009/10/21 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
vant实现购物车功能
2020/06/29 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
python热力图实现简单方法
2021/01/29 Python
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
试述DBMS的主要功能
2016/11/13 面试题
技术总监管理岗位职责
2014/03/09 职场文书
小学运动会口号
2014/06/07 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA