代码之家  ›  专栏  ›  技术社区  ›  Varin

Xdebug Chrome预览未正确呈现响应,仅显示一行

  •  0
  • Varin  · 技术社区  · 7 年前

    Chrome预览没有正确呈现响应,因为昨天我将工作机器从Win8升级到Win10。请参见屏幕截图:

    enter image description here

    enter image description here

    如您所见,只渲染了对象的一行,当我尝试使用简单数组时,同样的情况发生了,它只渲染了单词“array”和“0”;

    我在PHP7.2.14中使用Chrome 72.0.3626.96、WampServer64,这些是我在PHP.ini中的Xdebug设置:

    zend_extension="c:/wamp64/bin/php/php7.2.14/zend_ext/php_xdebug-2.6.1-7.2-vc15-x86_64.dll"
    
    xdebug.default_enable=1
    html_errors = On
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_enable = 1
    xdebug.remote_port = 9123
    xdebug.profiler_enable = off
    xdebug.profiler_enable_trigger = off
    xdebug.profiler_output_name = cachegrind.out.%t.%p
    xdebug.profiler_output_dir ="c:/wamp64/tmp"
    xdebug.show_local_vars=0
    xdebug.var_display_max_depth = 10
    xdebug.var_display_max_children = 256
    xdebug.var_display_max_data = 1024 
    

    0 回复  |  直到 7 年前
        1
  •  2
  •   Cave Johnson    7 年前

    我发现了这个问题,这很奇怪。看起来最新版本的Chrome(我是72.0.3626.119)在输出中包含哈希字符(#)时在呈现预览时出现问题。它将愉快地呈现所有内容,直到遇到哈希字符。这绝对是Chrome中的一个bug。

    我发现这一点,首先注意到预览在 <font color='#888a85'>=&gt;</font> . 我在文档中对此进行了硬编码并删除了字符,直到我断定是哈希字符导致了问题。

    下面是这个bug的演示。当您在最新版本的Chrome中运行此代码段并打开Inspector时,您应该会在网络选项卡中看到请求弹出。当您单击请求并转到“预览”选项卡时,第三段将被截断,因为存在 #

    <p>Para1</p>
    <p>Para2</p>
    #
    <p>Para3</p>

    我无法找到与此相关的开放错误报告,因此我冒昧地在此处报告: https://bugs.chromium.org/p/chromium/issues/detail?id=936284

    link )并在Chrome的开发版本中修复,但在稳定版本中尚未更新。

    同时,如果您确实需要在Chrome中进行var_dump工作,您可以将其作为一种解决方法(缓冲输出并替换 #

    ob_start();
    var_dump($var);
    echo str_replace('#','',$ob_get_clean());
    

    ... 或者,您可以只关闭HTML错误:

    ini_set('html_errors', false);