如何使用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中的内存管理,PHP动态分配和释放内存
Jun 28 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
PHP中使用file_get_contents post数据代码例子
Feb 13 PHP
php简单实现sql防注入的方法
Apr 22 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
基于PHP实现用户在线状态检测
Nov 10 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_SELF的安全问题
2009/09/05 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
js更优雅的兼容
2010/08/12 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
js的三种继承方式详解
2017/01/21 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
python 动态调用函数实例解析
2019/10/21 Python
使用python去除图片白色像素的实例
2019/12/12 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
python切割图片的示例
2020/11/12 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
祖国在我心中演讲稿300字
2014/05/04 职场文书
企业法人代表任命书
2014/06/06 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
使用HttpSessionListener监听器实战
2022/03/17 Java/Android