之前用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. Couchbase集群和Redis集群解析

    Couchbase集群和Redis集群解析 首先,关于一些数据库或者是缓存的集群有两种结构,一种是Cluster;一种是master-salve. 关于缓存系统一般使用的就是Redis,Redis是开 ...

  2. python学习之路二(字符串,字典,序列和元组)

    # -*- coding: utf-8 -* ''' Created on 2013-7-26 @author: lixingle ''' #!/usr/bin/python import math# ...

  3. AJAX异步提交,浏览器总跳出下载界面

    问题: 我在写一个网页的“用户登录”部分时,要将用户名和密码传到后端验证,想在前端用了AJAX异步提交功能,将 用户名密码传到后端,然后后端返回验证结果.但AJAX写好后每次刷新网页都会跳出下载窗口, ...

  4. SharePoint RBS 安装(集成Office Web Apps)

    前言 本文完全原创,转载请说明出处,希望对大家有用. 本篇博客是个人总结,一方面以便日后查看,另一方面希望能为其他人提供一些便利. 阅读目录 安装RBS 为多个内容数据库开启RBS 正文 目的:在Sh ...

  5. 解决js中传值,Action获取是乱码问题

    1.先在js中进行编码 var str = $("mytext").val(); //转码,两次 str = encodeURI(str); str = encodeURI(str ...

  6. js框架漫谈

    现在实际项目中可供选择的javascript框架很多,热门的有jquery,dojo,mootools,ext等.这些框架按照不同的标准有不同的分类方法,比如按照扩展方式便可分为prototype式的 ...

  7. MyEclipse修改默认的workspace路径

    在此只提供一个自己认为可行的办法(已验证可行) 已MyEclipse8.5为例 打开安装路径C:\Program Files\Genuitec\MyEclipse 8.5\configuration下 ...

  8. Socket通信之Java学习(一)

    最近从一篇博客中看到了Socket的介绍,是阿蜜果姐姐的博文:http://www.blogjava.net/amigoxie/archive/2007/02/11/99331.html,学习了下. ...

  9. Fast Token Replacement in C#

    http://www.codeproject.com/Articles/298519/Fast-Token-Replacement-in-Csharp Fast Token Replacement i ...

  10. C++malloc,calloc,realloc,free函数

    在进行C/c++编程的时候,需要程序员对内存的了解比较清楚,经常需要操作的内存可分为下面几个类别:     1.堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等, ...