如何使用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 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
paypal即时到账php实现代码
Nov 28 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php一些错误处理的方法与技巧总结
Aug 10 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
php 生成签名及验证签名详解
Oct 26 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 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中的正规表达式(二)
2006/10/09 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
Python正则表达式指南 推荐
2018/10/09 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
python里反向传播算法详解
2020/11/22 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
西岭雪山导游词
2015/02/06 职场文书
社区植树节活动总结
2015/02/06 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
单位接收证明格式
2015/06/18 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL