如何使用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 相关文章推荐
967 个函式
Oct 09 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 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 GD绘制24小时柱状图
2008/06/28 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
跟老齐学Python之集合的关系
2014/09/24 Python
Python入门篇之字符串
2014/10/17 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python中按值来获取指定的键
2019/03/04 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
小学教师岗位职责
2013/11/25 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
小区推广策划方案
2014/06/06 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技