如何使用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 相关文章推荐
phpize的深入理解
Jun 03 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
smarty中常用方法实例总结
Aug 07 PHP
PHP中如何使用session实现保存用户登录信息
Oct 20 PHP
Zend Framework实现将session存储在memcache中的方法
Mar 22 PHP
PHP中session跨子域的三种实现方法
Jul 25 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
php计算税后工资的方法
2015/07/28 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
Javascript !!的作用
2008/12/04 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
python制作最美应用的爬虫
2015/10/28 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
python绘制玫瑰的实现代码
2020/03/02 Python
如何利用Python写个坦克大战
2020/11/18 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
生物科学专业个人求职信范文
2013/12/07 职场文书
学校读书活动总结
2014/06/30 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
学习十八大的感悟
2015/08/11 职场文书