之前用ThinkPHP时发现有个 trace 函数可以跟踪调试,感觉很有意思,网上搜索了下类似的东西,发现了 ChromePhp ,以前没想过这样来调试 PHP 程序,感觉非常方便,很有用。

ThinkPHP 使用的是自己生成的 HTML 随模版一起输出来显示,偶尔会遇到一些莫名其妙的问题,效果不是太好,

还有一些也是类似的方法,但输出的主要是在模版中增加 JS 代码,调用浏览器的调试方法进行输出调试

如 console.log('PHP的一些调试输出内容');

ChromePhp 是通过header来传输调试内容并通过安装 Chrome 浏览器的插件读取header 信息显示到浏览器调试面板中进行查看,功能比较强大,对页面没什么太多干扰,调试也更方便,火狐下据说也有类似的 firePhp ,不过现在不怎么用火狐浏览器也没去测试过

官网地址:

http://www.chromelogger.com/

这是该开源项目的 Github 地址:

Github : https://github.com/ccampbell/chromephp

这是 Chrome 内核浏览器插件的安装地址:

https://chrome.google.com/extensions/detail/noaneddfkdjfnfdakjjmocngnfkfehhd

不过老是被墙,不容打开,而且只能是 google chrome 才能安装,我找了老半天只找到个 3.0 的插件

插件下载地址:

http://download.csdn.net/detail/zsjangel/7535201

可以安装后试试 升级到现在最新的 4.1,我是这样成功了的

3.0 的插件图标和 4.1 的不一样的:

下面是4.1版本,黑色表示为开启插件,点击启动

下方显示蓝色时表示启动,可以在面板中看到调试信息

PHP下的使用方法:

ChromePhp::log('Hello console!');
ChromePhp::group('this is group');
ChromePhp::log('Hi 神神的蜗牛!');
ChromePhp::error('something went wrong!');
ChromePhp::groupEnd();
ChromePhp::table(array(array('aa'=>'bb', 'cc'=>11), array('aa'=>'cc', 'cc'=>22)));

group 表示默认直接展开下面的所有都是一组调试信息,一直到 groupEnd 结束,显示效果和普通的 log 是不一样的

若使用 groupCollapsed 则默认收缩不显示整个 group 信息

table 的参数必须是 二维数组,否则将不显示,数组的键名及字段名

下面是效果图:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

刚刚又试了 firefox 下的 FirePHP 插件,他们的功能都很类似,但 FirePHP 比 ChromePHP 更热门些,也不会被墙安装很方便,后者的 github 项目似乎一年没有维护更新了,也可能是没什么可更新了的吧,不过 firefox 和 Chrome 浏览器比起来,后者应该使用的人更多了吧。

FirePHP 官方主页:(下载 PHP 端类库)

http://www.firephp.org/HQ/Install.htm

安装插件就不用说了吧,附加组件里面搜索下 FirePHP 就行了很方便,必须依赖 FireBug,最好先安装 FireBug 再安装 FirePHP

PHP简单测试代码:

		$fire = FirePHP::init();
$fire->log('Hello console!');
// Collapsed:true 收起该组调试信息
$fire->group('this is group', array('Collapsed'=>true));
$fire->log('Hi 神神的蜗牛!');
$fire->error('something went wrong!');
$fire->groupEnd();
$fire->table('数据表', array(array('aa'=>'bb', 'cc'=>11), array('aa'=>'cc', 'cc'=>22)));

效果:

他们的原理也都一样,使用方式上基本上差不多的,大概就是这样啦

最后再来一个 header 传输调试信心的对比:

FirePHP 在输出时应该会判断当前浏览器,非 Firefox 不会输出 header 信息,而 ChromePHP 则未判断都是直接输出

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PHP在浏览器上跟踪调试的方法以及使用ChromePhp、FirePHP的简单介绍的更多相关文章

  1. PHP在浏览器上跟踪调试的方法以及使用ChromePhp、FirePHP的简介

    之前用ThinkPHP时发现有个 trace 函数能够跟踪调试,感觉非常有意思.网上搜索了下类似的东西.发现了 ChromePhp ,曾经没想过这样来调试 PHP 程序.感觉非常方便,非常实用. Th ...

  2. Android平台Camera实时滤镜实现方法探讨(十)--代码地址以及简单介绍(20160118更新)

    简单做了个相机和图片编辑模块,时间原因非常多功能还没有做.尚有BUG,见谅,将在以后抽时间改动 代码地址 PS:请点个Star^-^ --------------------------------- ...

  3. uploadify上传文件Firefox浏览器上传失败解决方法

    近期做文件上传使用到了uploadify 可是出现了各种奇葩的问题.并且针对各个不同浏览器问题不同 在Firefox中.非常坑爹的是.每次上传就丢失session值,可是我的系统在登录.保存文件文件夹 ...

  4. Xilinx FGPA 上板调试 集成逻辑分析工具 Integrated Logic Analyzer(ILA) 简单配置 chipscope

    Xilinx Vivado 提供了上板后的FPGA逻辑分析,信号视图显示等功能. 需要注意,上板后查看信号需要重新综合,并且需要耗费一定的片上布局布线资源. 1. 添加debug信号 可以对模块端口或 ...

  5. 3星|路骋《用得上的商学院》:100个MBA知识点的简单介绍

    作者在序言中说,放弃了上亿的股票期权去念了两年全脱产的清华-MIT Global MBA.念完后认为课程不错,考虑到这种课本科毕业不能直接念,工作几年后又很难脱产来念,因此办了一个音频课程来讲这个MB ...

  6. 浏览器上的Qt Quick

    你想不想在浏览器上运行你的Qt Quick程序呢?在Qt 5.12之前,唯一的方法是使用Qt WebGL Streaming技术把界面镜像到浏览器上.但该方法有不少缺陷,下文会说.前不久随着Qt 5. ...

  7. 手动绕过百度加固Debug.isDebuggerConnected反调试的方法

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78237571 1.调用Debug.isDebuggerConnected函数这种反 ...

  8. 跟踪调试JDK源码时遇到的问题及解决方法

    目录 问题描述 解决思路 在IntelliJ IDEA中调试JDK源码 在eclipse中调试JDK源码 总结 问题描述 最近在研究MyBatis的缓存机制,需要回顾一下HashMap的实现原理.于是 ...

  9. VSCode调试Html中的脚本 vscode前端常用插件推荐,搭建JQuery、Vue等开发环境 vsCode 添加浏览器调试和js调试的方法总结 VS Code - Debugger for Chrome调试js

    一.背景 使用Visual Studio Code写了一个简单的Html页面,想调试下其中script标签里的javascript代码,网上查了一通,基本都是复制粘贴或者大同小异的文章,就是要安装De ...

随机推荐

  1. 在 Ubuntu 12.04 上通过 Tomcat 部署 Solr 4

    http://www.oschina.net/question/12_71342 可行

  2. queue,指针求最短路的区别

    这里以spfa为例://都用邻接表存边: 指针: int h=1,t=1; q[h]=x; while(h<=t){ int u=q[h]; vis[u]=0; for(int i=head[u ...

  3. Oracle中忘记sys和System密码的办法

    打开cmd:sqlplus/nolog connect/as sysdba; alter user sys identified by ***; alter user system identifie ...

  4. jQuery获取动态生成的元素

    需求描述:页面上可以动态添加数据,比如table,点击按钮可以动态添加行.又或页面 加载时table数据是通过ajax从后台获取的.而这时我们想要获取其中的某个值,又该如何获取呢? 如果是要通过某个事 ...

  5. 合约广告系统-Hadoop

    Hadoop Hadoop 概况 Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为Lucene的子项目 Nutch的一部分正式引入.它受到最先由 G ...

  6. windows下配置PHP+Nginx+MySQL完整流程(转)

    对于在windows上的php+nginx的配置可能好多同学一次根本都配不正确,于我也是如此,为此我将我成功配置的过程细致的总结如下,希望能帮助搞PHP研究的同学 1.资源准备 MySQL:这个链接不 ...

  7. AOP in Spring

    AOP in Spring 是不是已经对包裹在每个业务周围的异常处理.事务管理.性能监控.日志记录等重复出现的代码感到厌倦,那么是时候轮到AOP出场了.不得不承认程序员的惰性有时候会是一件好事(毕竟提 ...

  8. Arduino live weather broadcasting 实时天气站

    Live broadcasting with arduino get a pc , make it run linux. make arduino catch the weather sensor a ...

  9. icon 图标下载

    1. http://www.easyicon.net/ 2.http://www.iconpng.com/

  10. linux内核——进程,轻量级进程,线程,线程组

    1.进程.轻量级进程.线程.线程组之间的关系 2.及它们的标识相关说明 一.进程.轻量级进程.线程.线程组之间的关系 借助上图说明: 进程P0有四条执行流,即线程, 主线程t0是它的第一个线程,且与进 ...