`

将php的debug信息与firefox的控制台挂钩

    博客分类:
  • PHP
阅读更多
  今天学到一个招,就是如果是在FIREFOX或者chrome下,可以将PHP中的警告,错误等信息,
分门别类输出到firebug的控制台中,这样查看起来会比较好看,比较直观.

先有一个debug类如下:

class PHPDebug {

function __construct() {
    if (!defined("LOG"))    define("LOG",1);
    if (!defined("INFO"))   define("INFO",2);
    if (!defined("WARN"))   define("WARN",3);
    if (!defined("ERROR"))  define("ERROR",4);

    define("NL","\r\n");
    echo '<script type="text/javascript">'.NL;

    /// this is for IE and other browsers w/o console
    echo 'if (!window.console) console = {};';
    echo 'console.log = console.log || function(){};';
    echo 'console.warn = console.warn || function(){};';
    echo 'console.error = console.error || function(){};';
    echo 'console.info = console.info || function(){};';
    echo 'console.debug = console.debug || function(){};';
    echo '</script>';
    /// end of IE
}

function debug($name, $var = null, $type = LOG) {
    echo '<script type="text/javascript">'.NL;
    switch($type) {
        case LOG:
            echo 'console.log("'.$name.'");'.NL;
        break;
        case INFO:
            echo 'console.info("'.$name.'");'.NL;
        break;
        case WARN:
            echo 'console.warn("'.$name.'");'.NL;
        break;
        case ERROR:
            echo 'console.error("'.$name.'");'.NL;
        break;
    }

    if (!empty($var)) {
        if (is_object($var) || is_array($var)) {
            $object = json_encode($var);
            echo 'var object'.preg_replace('~[^A-Z|0-9]~i',"_",$name).' = \''.str_replace("'","\'",$object).'\';'.NL;
            echo 'var val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).' = eval("(" + object'.preg_replace('~[^A-Z|0-9]~i',"_",$name).' + ")" );'.NL;
            switch($type) {
                case LOG:
                    echo 'console.debug(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
                break;
                case INFO:
                    echo 'console.info(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
                break;
                case WARN:
                    echo 'console.warn(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
                break;
                case ERROR:
                    echo 'console.error(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
                break;
            }
        } else {
            switch($type) {
                case LOG:
                    echo 'console.debug("'.str_replace('"','\\"',$var).'");'.NL;
                break;
                case INFO:
                    echo 'console.info("'.str_replace('"','\\"',$var).'");'.NL;
                break;
                case WARN:
                    echo 'console.warn("'.str_replace('"','\\"',$var).'");'.NL;
                break;
                case ERROR:
                    echo 'console.error("'.str_replace('"','\\"',$var).'");'.NL;
                break;
            }
        }
    }
    echo '</script>'.NL;
}
}


  使用起来也很方便,例子如下:

// include and instantiate the class
    require_once("PHPDebug.php");
    $debug = new PHPDebug();

    // simple message to console
    $debug->debug("A very simple message");

    // vaiable to console
    $x = 3;
    $y = 5;
    $z = $x/$y;
    $debug->debug("Variable Z: ", $z);

    // a warnign
    $debug->debug("A simple Warning", null, WARN);

    // info
    $debug->debug("A simple Info message", null, INFO);

    // An error
    $debug->debug("A simple error messsage", null, ERROR);

    // Array in console
    $fruits = array("banana", "apple", "strawberry", "pineaple");
    $fruits = array_reverse($fruits);
    $debug->debug("Fruits array", $fruits);

    // object to console
    $book               = new stdClass;
    $book->title        = "Harry Potter and the Prisoner of Azkaban";
    $book->author       = "J. K. Rowling";
    $book->publisher    = "Arthur A. Levine Books";
    $book->amazon_link  = "http://www.amazon.com/dp/0439136369/";
    $debug->debug("Object", $book);


  这样,就可以将各种警告或错误,分门别类地显示在浏览器的控制台中了
2
4
分享到:
评论

相关推荐

    火狐浏览器安装包,包含debug

    火狐浏览器(Firefox)是一款由Mozilla开发的开源网络浏览器,以其强大的安全性、隐私保护和高度的自定义性受到全球用户的广泛赞誉。对于IT专业人士,尤其是前端开发者而言,火狐浏览器是一个不可或缺的工具,因为它...

    firefox debug 调js有用

    标题中的“firefox debug 调js有用”表明我们主要探讨的是使用Firefox浏览器的调试工具来对JavaScript代码进行调试。在Web开发中,JavaScript是至关重要的客户端脚本语言,用于实现网页的动态交互功能。Firefox提供...

    MFC中通过控制台debug

    然而,在开发过程中,调试是至关重要的一个环节,而MFC应用通常没有内置的控制台窗口来显示调试信息。本篇文章将深入探讨如何在MFC程序中启用控制台调试,以方便地打印和读取数据,这对于初学者来说非常有用。 首先...

    Firefox Debug插件 免安装

    标题中的“Firefox Debug插件免安装”指的是Firefox浏览器的一个调试工具,它允许开发者在无需正式安装的情况下使用。这种工具对于Web开发人员来说尤其有用,因为它简化了插件的测试和调试过程,使得开发者可以快速...

    firefox+debug+json

    标题中的“firefox+debug+json”表明我们讨论的是在Firefox浏览器中使用Firebug扩展进行JSON数据的调试。本文将深入探讨Firefox、Firebug以及JSON在Web开发中的重要性,以及如何利用这些工具来提升开发效率。 Fire...

    firefox - flashplayer debug 10.1 调试版 天涯浪子 for windows

    firefox - flashplayer debug 10.1 调试版 天涯浪子 for windows

    FireFox和debug调试ajax

    标题“FireFox和debug调试ajax”指的是使用Firefox浏览器内置的开发者工具以及可能的第三方插件来调试AJAX请求。Firefox的开发者工具集成了对JavaScript、网络请求、样式、元素、性能等多个方面的调试功能,对于AJAX...

    Unity在手机端显示Debug.Log信息

    在Unity中,`Debug.Log`是一个非常实用的功能,它可以方便地帮助开发者输出各种信息到控制台。但在实际的应用场景中,特别是在手机端,开发者可能需要将这些日志信息记录到文件中以便于查看和分析。 #### 三、在...

    debugView 全局查看 Outputdebugstring

    这个标题提到的是一个名为"debugView"的工具,它能够全局地捕获并显示通过`OutputDebugString`函数输出的信息。`OutputDebugString`是Windows API提供的一种调试辅助函数,开发者在编写代码时可以调用它来打印调试...

    vscode-firefox-debug:Firefox的VS Code调试适配器

    包括高级和模式使用暂停对象属性更改调试期间使用注射记录 调试评估脚本,脚本标签和动态添加和/或源映射的脚本用于检查和设置值的变量窗格观察窗格,用于评估和观察表达式记录和REPL的控制台调试Firefox扩展调试Web...

    ThinkPHP浏览器控制台输出内容

    ThinkPHP3.2.3利用行为扩展,实现浏览器控制台输出数据。 文件夹一共3个文件。 1.Behavior 请放在 Application\Common 下 2.function.php 请放在 Application\Common\Common 下 3.tags.php 请放在 Application\...

    firefox插件开发,firefox plugin 开发 firefox 扩展 开发

    火狐浏览器(Firefox)插件开发涉及一系列技术与步骤,主要目标是创建增强或定制浏览器功能的软件组件。以下是对标题和描述中提及知识点的详细解释: 1. **开发环境搭建**: - 使用`-no-remote -P develop`参数...

    flash_player_11_debug firefox专用插件

    自己正在使用中,可配合flashInspector 对网页中的flash进行解析和查看,很方便,尤其适用于web开发人员。试了很多版本才确定的。

    华为/H3C路由器debug信息详解

    本文将详细解析华为/H3C路由器的debug信息,帮助你更好地理解和诊断网络问题。 1. **Debug命令的基本概念** Debug命令是路由器上的一种诊断工具,它允许管理员实时查看设备内部操作的详细信息,如协议交互、数据包...

    firefox18+debug11

    Firefox 18+ Debug 11 是一个专为开发者设计的Firefox浏览器版本,它包含了调试工具,便于Web开发人员和程序员分析、测试和优化他们的网页应用程序。这个版本的Firefox允许用户深入理解网页的工作原理,诊断并修复...

    flashDebugForFirefox,已破解

    火狐浏览器中flashDebug,已破解

    vc6.0 MFC 添加控制台

    mfc中一般输出信息部方便 用到OutPutDebugString 需要用debugview来弄 不是太爽 所以 如果能搞一个控制台程序 并且使用printf 那该有多爽 在 InitInstance 中添加 下面内容 AllocConsole ; 开辟控制台 ...

    火狐debug插件

    火狐浏览器(Firefox)作为一款流行的网页浏览工具,其强大的可扩展性使得用户可以通过安装各种插件来增强功能。在开发Web应用时,调试工具是不可或缺的助手,它可以帮助开发者定位并修复代码中的错误。虽然现代版本...

    php-debug-pack-7.4.29-nts-Win32-vc15-x64

    php-debug-pack-7.4.29-nts-Win32-vc15-x64php-debug-pack-7.4.2

    DebugView 调试日志工具

    DebugView是一款强大的调试日志查看工具,尤其在Windows操作系统环境下,它被广泛应用于软件开发和系统调试过程。这个工具能够捕获并显示由`OutputDebugString`和`TRACE`宏生成的调试信息,使得开发者无需编译调试...

Global site tag (gtag.js) - Google Analytics