如何使用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中使用Oracle数据库(1)
Oct 09 PHP
php 结果集的分页实现代码
Mar 10 PHP
PHP 设置MySQL连接字符集的方法
Jan 02 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
46 个非常有用的 PHP 代码片段
Feb 16 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
PHP基于面向对象封装的分页类示例
Mar 15 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新建文件自动编号的思路与实现
2011/06/27 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
简洁的十分钟Python入门教程
2015/04/03 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
python删除字符串中指定字符的方法
2018/08/13 Python
基于Python实现扑克牌面试题
2019/12/11 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
大家检讨书5000字
2014/02/03 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
公司岗位说明书
2015/10/08 职场文书
初中班长竞选稿
2015/11/20 职场文书
幼儿园中班教学反思
2016/03/03 职场文书