2014-09-05
如果Web前端调试来说,Firebug是不可或缺好的调试工具,它能够监控网络、监测css、js错误,查看DOM节点,查看当前页面获得了几个A,等等功能。
PHP同样也有配合firebug这么好用的工具,那就是FirePHP。
FirePHP是一个附加在 firebug 上面的插件,用来调试PHP,操作过程很简单。在PHP端使用FirePHP提供的PHP日志记录类库来输出调试信息, 在浏览器端使用 Firebug + FirePHP 来接收查看输出的调试信息,这些调试信息会直接附加在返回的HTTP头信息里,这些信息不会被浏览器直接显示,只会在firephp 获取显示,有效的达到了调试和页面显示都不冲突的问题。(必须使用firefox浏览器)
FirePHP调试原理
通过服务端库FirePHPCore,和基于Firebug的插件FirePHP,PHP脚本可以通过HTTP请求头发送调试信息到浏览器。一旦你设置开启FirePHP,你可以在Firebug的控制台获得PHP脚本警告和错误,就感觉像直接调试JavaScript一样。
安装
首先需要安装Firefox,Firebug,FirePHP,建议使用最新版本FireFox 19.0.2,Firebug 1.11.2,FirePHP 0.7.1;
其次下载服务器端库FirePHPCore:
> wget http://www.firephp.org/DownloadRelease/FirePHPLibrary-FirePHPCore-0.3.2
> file FirePHPLibrary-FirePHPCore-0.3.2
FirePHPLibrary-FirePHPCore-0.3.2: Zip archive data, at least v2.0 to extract
> unzip FirePHPLibrary-FirePHPCore-0.3.2
~/public_html/FirePHPCore-0.3.2> ls -R
.:
CHANGELOG CREDITS FirePHPCore-0.3.2 FirePHPLibrary-FirePHPCore-0.3.2 lib README test
./FirePHPCore-0.3.2:
CHANGELOG CREDITS lib README
./FirePHPCore-0.3.2/lib:
FirePHPCore
./FirePHPCore-0.3.2/lib/FirePHPCore: # 对于PHP5+只需用于fb.php,FirePHP.class.php这两个文件
fb.php fb.php4 FirePHP.class.php FirePHP.class.php4 LICENSE
./lib:
FirePHPCore
./lib/FirePHPCore:
fb.php fb.php4 FirePHP.class.php FirePHP.class.php4 LICENSE
./test: # 自已在解压缩目录下创建test目录用于测试FirePHP
firephptest.php测试
接下来 在test目录下创建测试用例firephptest.php:
<?php
require_once '../lib/FirePHPCore/fb.php';
$firephp = FirePHP::getInstance(true);
$var = array(1, 2, 'hello world', array(1));
fb($var);
fb($var, 'Label');最后在浏览器访问www.domain.com/~zhanhailiang/FirePHPCore-0.3.2/test/firephptest.php,可以在控制台上看到如下输出:
http://itravel.smartcom.cc/~zhanhailiang/FirePHPCore-0.3.2/test/firephptest.php
log: array('0'=>'1', '1'=>'2', '2'=> ... )
log: Label: array('0'=>'1', '1'=>'2', '2'=> ... )通过Firebug网络面板可以看到HTTP请求的响应头详情:
Connection close
Content-Encoding gzip
Content-Type text/html; charset=utf-8
Date Fri, 29 Mar 2013 01:39:32 GMT
Server nginx
Transfer-Encoding chunked
X-Wf-1-1-1-1 142|[{"Type":"LOG","File":"//home//zhanhailiang//public_html//FirePHPCore-0.3.2//test//firephptest.php","Line":"8"},["1","2","hello world",["1"]]]|
X-Wf-1-1-1-2 158|[{"Type":"LOG","Label":"Label","File":"//home//zhanhailiang//public_html//FirePHPCore-0.3.2//test//firephptest.php","Line":"9"},["1","2","hello world",["1"]]]|
X-Wf-1-Index 2
X-Wf-1-Plugin-1 http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3
X-Wf-1-Structure-1 http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1
X-Wf-Protocol-1 http://meta.wildfirehq.org/Protocol/JsonStream/0.2通过分析FirePHP开启和关闭选项,可以发现当FirePHP关闭时响应信息里是不存在X-Wf-***。通过分析HTTP请求可以发现,
当关闭FirePHP,HTTP请求头为:
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Cache-Control max-age=0
Connection keep-alive
Host itravel.smartcom.cc
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0当开启FirePHP时,HTTP请求头为:
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Cache-Control no-cache
Connection keep-alive
Host itravel.smartcom.cc
Pragma no-cache
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 FirePHP/0.7.1
x-insight activate可以看出开启FirePHP时HTTP请求头区别在于:
Pragma no-cache
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 FirePHP/0.7.1
x-insight activate通过查看FirePHP.class.php源码可以看到FirePHPCore通过UA来判断客户端是否安装FirePHP:
/**
* Check if FirePHP is installed on client
*
* @return boolean
*/
public function detectClientExtension()
{
// Check if FirePHP is installed on client via User-Agent header
if (@preg_match_all('//sFirePHP//([/./d]*)/s?/si',$this->getUserAgent(),$m) &&
version_compare($m[1][0],'0.0.6','>=')) {
return true;
} else
// Check if FirePHP is installed on client via X-FirePHP-Version header
if (@preg_match_all('/^([/./d]*)$/si',$this->getRequestHeader("X-FirePHP-Version"),$m) &&
version_compare($m[1][0],'0.0.6','>=')) {
return true;
}
return false;
}那么x-insight请求头有没有用呢?查看FirePHPCore里的所有代码,并没有看到x-insight的用途,所以我猜测x-insight并没有实际用途。为了验证我的猜测,使用FF扩展HTTPRequester工具模拟构造一个只有UA:FirePHP,而没有x-insight请求头,测试下是否响应头和包含x-insight请求的响应头是否一致:
GET http://itravel.smartcom.cc/~zhanhailiang/FirePHPCore-0.3.2/test/firephptest.php
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 FirePHP/0.7.1
-- response --
200 OK
Server: nginx
Date: Fri, 29 Mar 2013 02:34:54 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
X-Wf-1-1-1-1: 142|[{"Type":"LOG","File":"//home//zhanhailiang//public_html//FirePHPCore-0.3.2//test//firephptest.php","Line":"8"},["1","2","hello world",["1"]]]|
X-Wf-Protocol-1: http://meta.wildfirehq.org/Protocol/JsonStream/0.2
X-Wf-1-Plugin-1: http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3
X-Wf-1-Structure-1: http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1
X-Wf-1-1-1-2: 158|[{"Type":"LOG","Label":"Label","File":"//home//zhanhailiang//public_html//FirePHPCore-0.3.2//test//firephptest.php","Line":"9"},["1","2","hello world",["1"]]]|
X-Wf-1-Index: 2
Content-Encoding: gzip
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
6
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
PHP中include和require区别之我见
09-05
常用dos命令及语法
2014-09-27
将视频设置为Android手机开机动画的教程
2014-12-11
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
java中的info是什么意思
2022-03-24
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
IcePHP框架中的快速后台中的通用CRUD功能框架
2014-09-05
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP数组函数array
2014-09-05
学ug编程如何快速入门?
2022-03-17
暴走英雄坛小米渠道服下载v3.1.9 安卓版
其它手游 587.9M
下载火海逐日手游(0.05折征战吧三国)下载v1.0.0 安卓版
卡牌对战 12.7M
下载逆战三国手游(0.1折定制全服奖励)下载v1.0.1 安卓版
卡牌对战 392.5M
下载镜解视界游戏下载v1.1.5 官方安卓版
角色扮演 918.7M
下载铁拳5暗之复苏手机版下载v2022.02.18.18 安卓双人街机版
动作闯关 1.10G
下载武娘外传手游下载v2.2 安卓最新版
角色扮演 376.4M
下载闪耀暖暖越南服官方版下载v2.7.1500283 安卓版
经营养成 2.59G
下载萌幻西游手游官方版下载v2.4.1 安卓版
卡牌对战 385.8M
下载三国戏英杰传官方版本下载v6.87.2077 安卓最新版
下载
名将集手游下载v1.0.6 安卓版
下载
破天一剑官方正版手游下载v6.90 安卓最新版本
下载
银河战舰手游官方版下载v1.31.87 安卓最新版
下载
碧蓝航线台服官方版下载v7.1.1 安卓版
下载
虎符传奇正式版下载v1.8 安卓最新版
下载
植物大战僵尸中国馆手机版随机植物下载v2024.05.01 安卓中国版
下载
漫威终极逆转手游最新版下载v112.0.0 安卓官服
下载