2

我试图找到在浏览器中调试 PHP 的最佳方法。

编辑:

我知道 xdebug、var_dump 和 print_r;那不是重点。a)我想要一种在网站上线时进行调试的方法(我知道,这很糟糕,但有时必须快速修复),b)在整个网页上转储 PHP 变量是丑陋的,并且 c)我有时需要知道为什么 AJAX 调用不起作用,在控制台中查看 JSON 更容易。

可能的其他解决方案包括将调试输出包装在隐藏的 div 中,例如

<div id="debug"><?php var_dump($all_the_junk) ?></div><script>document.getElementById('debug').style.display='none'</script>

然后输入类似

document.getElementById('debug')style.display = 'block'

进入控制台。

但老实说,这种做法很糟糕,违背了能够以整洁的方式查看所有内容的目的。

结束编辑;

所以,无论如何,我有以下代码:

function log_as_json($vars)
{
    if(is_resource($vars)) {
        return;
    }
    else {
        if($vars)
        {
            $json =  @json_encode($vars);
            print "<script>console.log($json);</script>";
        }

    }
}

问题是有时我会遇到这些可怕的递归,但我不确定检查 json_encode 支持的类型的最佳方法是什么。我也怀疑有更好的方法来做到这一点。建议将不胜感激。谢谢!

4

4 回答 4

3

最好的方法是使用xdebug和一个允许你设置断点的 IDE

于 2013-06-30T01:20:42.220 回答
3

如果你真的热衷于在浏览器中进行调试,我会推荐Chrome Logger(以前称为 ChromePHP)。

于 2013-06-30T01:29:02.323 回答
0

我使用print_rvar_dump - 这是它们的设计目的。

我想您可以将这些调用嵌入其中console.log-但不确定它们将如何显示。

于 2013-06-30T01:22:20.130 回答
0

我知道这很旧,但这是一种对我有用的方法,只需在需要时调用该函数..

function console_log( $data ){
    echo '<script>';
    echo 'console.log('. json_encode( $data ) .')';
    echo '</script>';
}
于 2020-10-07T21:21:19.813 回答