如何使用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 socket方式提交的post详解
Jul 19 PHP
PHP 上传文件大小限制
Jul 05 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
PHP中feof()函数实例测试
Aug 23 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
php解析字符串里所有URL地址的方法
Apr 03 PHP
PHP简单获取多个checkbox值的方法
Jun 13 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 PHP
PHP7移除的扩展和SAPI
Mar 09 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
php生成圆角图片的方法
2015/04/07 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
php实现简单四则运算器
2020/11/29 PHP
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
python中的set实现不重复的排序原理
2018/01/24 Python
Python3 log10()函数简单用法
2019/02/19 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
NET程序员上机面试题
2015/05/23 面试题
Python中如何定义一个函数
2016/09/06 面试题
求职简历的自我评价怎样写好
2013/10/07 职场文书
校园十大歌手策划书
2014/02/01 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL