【问题标题】:unreadable var_dump() output on Snow Leopard?Snow Leopard 上的 var_dump() 输出不可读?
【发布时间】:2011-01-07 16:35:45
【问题描述】:

我的 xdebug 配置如下所示,但错误输出完全不可读。 您知道设置有什么问题吗?

TIA 和最好的问候

设置:雪豹服务器上的 Apache/2.2.13 (Unix) PHP/5.3.0

来自 php.ini 的配置:

xdebug.remote_autostart=0
xdebug.remote_enable=1
xdebug.remote_host=10.0.1.9
xdebug.remote_connect_back=0
xdebug.idekey="macgdbp"
xdebug.remote_port=10000
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"

; profiler
xdebug.profiler_output_dir = "/tmp/xdebug/"
xdebug.profiler_enable = On

; stacktraces & var_dump() output config
xdebug.overload_var_dump=1
xdebug.show_local_vars=1
xdebug.collect_params=4
xdebug.dump.GET=*
xdebug.dump.POST=*
xdebug.dump_globals=On
xdebug.show_exception_trace=On

; codetracer
xdebug.auto_trace=On
xdebug.trace_output_dir="/Users/admin/Sites/xdebugtracer"
xdebug.collect_return=On

输出:

注意:未定义变量:第 76 行 /Users/admin/Sites/hanak4/scripts/jwplaylist.php 中的文件调用堆栈:0.0003 648584 1. {main}() /Users/admin/Sites/hanak4/scripts/ jwplaylist.php:0 本地范围内的变量(#1):$config = class stdClass { public $showFirst = 'youtube'; public $playFirst = '01 Hanak Heumarkt.flv' } $db_host = 'localhost' $db_link = FALSE $db_name = 'db_fernan' $db_pass = 'Yes6uf5eNa' $db_prefix = 'ing_' $db_user = 'usr_fernan' $e = *uninitialized* $fh = array (0 => '{"showFirst":"youtube","playFirst":"01 Hanak Heumarkt.flv"}') $file = FALSE $files = *uninitialized* $key = *uninitialized* $parts = array (0 => 'Hanak Jeckdance 2009', 1 => 'flv') $path = '.' $pointer = resource(7) of type (Unknown) $sql = 'SELECT * FROM ing_video ORDER BY id DESC' $videos = array (0 => '01 Hanak Heumarkt.flv', 1 => 'Center TV.flv', 2 => 'Express TV.flv', 3 => 'Hanak Jeckdance 2009.flv') $xmlstr = '\n\n\t '

警告:在第 76 行的 /Users/admin/Sites/hanak4/scripts/jwplaylist.php 中为 foreach() 提供的参数无效调用堆栈:0.0003 648584 1. {main}() /Users/admin/Sites/hanak4 /scripts/jwplaylist.php:0 本地范围内的变量(#1):$config = class stdClass { public $showFirst = 'youtube'; public $playFirst = '01 Hanak Heumarkt.flv' } $db_host = 'localhost' $db_link = FALSE $db_name = 'db_fernan' $db_pass = 'Yes6uf5eNa' $db_prefix = 'ing_' $db_user = 'usr_fernan' $e = *uninitialized* $fh = array (0 => '{"showFirst":"youtube","playFirst":"01 Hanak Heumarkt.flv"}') $file = FALSE $files = *uninitialized* $key = *uninitialized* $parts = array (0 => 'Hanak Jeckdance 2009', 1 => 'flv') $path = '.' $pointer = resource(7) of type (Unknown) $sql = 'SELECT * FROM ing_video ORDER BY id DESC' $videos = array (0 => '01 Hanak Heumarkt.flv', 1 => 'Center TV.flv', 2 => 'Express TV.flv', 3 => 'Hanak Jeckdance 2009.flv') $xmlstr = '\n\n\t '

【问题讨论】:

    标签: php xdebug var-dump


    【解决方案1】:

    你必须设置

    html_errors = On
    

    在您的 php.ini 中,这允许 xdebug 正确输出。

    【讨论】:

      【解决方案2】:

      你是在前置标签之间打印这个吗?

      
      print '<pre>';
      var_dump($my_var);
      print '</pre>';
      

      这应该确保格式正确。我不知道为什么没有颜色。

      【讨论】:

        【解决方案3】:

        看起来您的错误日志没有在每个错误之间读取(或添加)换行符(或者这就是它发布到 SO 的方式?)

        注意:向问题添加代码或输出时,请使用编辑器中的代码按钮 - 它看起来像 101010。

        【讨论】:

        • 感谢您的回复 :) 不,这不是 c&p 错误,这是函数的实际输出。输出没有任何格式/颜色。
        【解决方案4】:

        我找到了解决方案。两个月前我遇到了同样的“问题”。

        试试看:

        打开 MAMP -> 进入文件菜单 -> 编辑模板 -> PHP (your-version).ini

        在文件末尾取消注释 Xdebug 扩展。

        你也可以设置 html_errors = On

        我希望能帮助像我这样的人。

        【讨论】:

          【解决方案5】:

          如果您无法编辑 php.ini 并且如果您错过了添加 pre 标记,您可以通过另一种方式查看完整错误,通过在任何浏览器中查看源代码,我经常使用它来修复.

          【讨论】:

            猜你喜欢
            • 2011-03-08
            • 1970-01-01
            • 2010-12-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-13
            • 1970-01-01
            相关资源
            最近更新 更多