php中文网最新课程

每日17点准时技术干货分享

做开发的人都知道,我们可以利用浏览器的控制台来调试JavaScript脚本,但是对于像php这种服务端的脚本,你知道如何调试吗?今天给大家推荐一个php调试利器,FirePHP!

以Chrome浏览器为例,具体实施步骤如下:

1. 安装FirePHP插件

在Chrome浏览器的应用商店中,搜索firephp关键词,在出来的插件列表中,选择第一个,将它添加到Chrome即可。如图:

2. 获取FirePHP类库

仅仅安装好FirePHP浏览器端的插件是不够的,我们还需要安装它的服务端,FirePHP类库下载地址:http://www.firephp.org/,如图:

下载完成后,将压缩包中的fb.php和FirePHP.class.php两个文件,拷贝到我们的项目中,如图:

由于我的开发环境是ThinkPHP,所以我将它拷贝到了Library的Vendor目录下,如图:

3. 如何使用

FirePHP的插件和类库都已经安装好了,下面我们来看下如何使用它。

首先,我写了一个FirePHP的工具类,内容如下:

<?php namespace Common\Lib\Util;if (!class_exists('FB')) {vendor('FirePHP.fb');}class FireBug {/*** 将php调试信息打印到控制台* @param mixes $object : 待输出的数据,类型可以是字符串、数组或者对象* @param string $label : 标题* @param boolean $showTrace : 是否显示调用跟踪信息*/public static function console($object, $label=null, $showTrace=false){//开发与生产模式的开关标识,我们只在开发模式下调试脚本if (!DEBUG_PHP) {return;}try {$label = $label ? $label : time();\FB::log($object,$label);if (is_array($object) || is_object($object)) {$headers = array_keys(reset($object));if (is_array($headers)) {array_unshift($object,$headers);\FB::table($label,$object);}else{\FB::table($label,array(array_keys($object),$object));}}else if(is_object($object)){\FB::table($label,$object);}if ($showTrace) {\FB::trace($label);}} catch (Exception $e) {echo '请开启输出缓冲函数ob_start()';}}}?>

然后,在需要调试的地方,调用它,如下:

打开Chrome浏览器的控制台,我们将会看到如下输出:

是不是非常方便,通过FirePHP,我们就不需要把调试信息用echo,print_r或者日志的形式输出了,这样,无形中,也加快了我们的开发进程。

-END-

php 控制台打印_php调试利器:FirePHP的安装与使用相关推荐

  1. php软件安装及调试_PHP调试利器XDebug的安装与使用

    很多PHP程序员调试使用echo.print_r().var_dump().printf()等,虽然对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的 ...

  2. fire.php,php代码调试利器firephp安装与使用方法分析

    本文实例分析了php代码调试利器firephp安装与使用方法.分享给大家供大家参考,具体如下: firephp简述 如果你曾经写过js代码的话,那么你对如下的代码肯定不会陌生: console.log ...

  3. opencv调试利器ImageWatch的安装使用

    Opencv自带文档和教程应该好好利用.以前不知道怎么用,随着学习的深入,以前不知如何下手的东西现在都慢慢地清晰了起来.今天按照opencv的自带教程尝试了IamgeWatch插件的用法,非常好用,非 ...

  4. linux系统下codeblocks控制台打印中文乱码

    linux系统下codeblocks控制台打印中文乱码 在linux下安装codeblocks后,打印中文出现如下问题: #include <stdio.h> #include <s ...

  5. go 切换当前运行目录_go调试利器-delve

    大家好,我是小栈君,好久没更新文章了,确实抱歉!因为工作变动等原因导致最近拖更严重,但是请大家放心,我会一如既往的为大家带来自己的原创文章,供大家相互交流和学习,一起成长.今天小栈君带来的分享是go语 ...

  6. C语言实例第5期:在控制台打印100-200之间的所有素数

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  7. C语言实例第3期:在控制台打印出著名的杨辉三角

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  8. 没有串口,如何打印单片机调试信息?

    输出调试信息是嵌入式开发中必不可少的调试利器,嵌入式开发的一个特点是很多时候没有操作系统,或者没有文件系统,常规的打印log到文件的方法基本不适用. 最常用的是通过串口输出uart log,例如51单 ...

  9. 关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 转自:https://my.oschina.net/leejun2005/blog/151103 1.原理简介 ...

最新文章

  1. 【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )
  2. 全球及中国家用非金属材质水槽行业产销模式及投资规模预测报告2022-2027年
  3. flink更新flink-shaded-hadoop-3-uber
  4. CF643F-Bears and Juice【组合数学】
  5. 将原生SQL功能Hibernate到您的Spring Data Repository中
  6. Android 更改签名
  7. java项目打镜像_docker通过dockerfile打java项目镜像
  8. Kubernetes 1.13 版本发布:Kubeadm简化群集管理、容器存储接口(CSI)和CoreDNS作为默认DNS现已普遍可用
  9. Hadoop学习总结(2)——Hadoop入门详解
  10. python定位相邻节点_Python selenium 父子、兄弟、相邻节点定位方式详解
  11. [UE4]Uniform Grid Panel
  12. 电信 宽带 光猫 中兴 F460 V6.0.0P11T2sc 破解 telecomadmin 超级密码 的方法
  13. 比例失衡,适婚农村青年找对象有多难?
  14. Win10 如何在系统内用cmd命令查看系统详细信息
  15. linux 无法生成图片大小,简单点。表演()在Linux上的ImageJ中生成错误
  16. 基于vue-grid-layout的自定义布局桌面
  17. 深入理解 Linux 内存子系统
  18. LSF---【bsub命令】
  19. Java基础知识入门级!
  20. 软件包pdftex.def错误:找不到文件`./filename-eps-converted-to.pdf‘

热门文章

  1. git clone 拉取github上面的代码报错:fatal: Authentication failed for xxx解决
  2. 消息中间件解决方案-JMS-ActiveMQ
  3. 痴情研究java内存中的对象
  4. zookeeper3.4.6完全分布式安装
  5. 《面向对象程序设计》第六次作业(图形化界面)
  6. Matlab C-Mex Round 1
  7. java之classpath到底是什么
  8. 软件开发再编写过程中,要尽可能地让开发者再后来可以很容易地找到软件的编写逻辑和思路结构。这才是我们需要追求的。...
  9. 为所有北京奥运冠军名字作诗(诗集)
  10. 毕业2月有余,苏州同学腐败第二次大聚会