Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止Xdebug格式化PHP错误消息_Php_Xdebug - Fatal编程技术网

防止Xdebug格式化PHP错误消息

防止Xdebug格式化PHP错误消息,php,xdebug,Php,Xdebug,我只将Xdebug用于IDE调试,并希望阻止它重新格式化PHP在浏览器中抛出的错误消息。我只想要常规的PHP错误消息,没有堆栈跟踪、表布局或其他任何内容。如何实现这一点?您可以在php.ini中控制XDebug的堆栈跟踪: 看 对于完整配置选项:在这种情况下,您需要设置:xdebug.default\u enable=0。这将在出现错误消息时禁用堆栈跟踪。此代码将修复问题,而无需更改xdebug配置。 Derick建议的设置xdebug.default_enable=0效果良好,但需要更改xd

我只将Xdebug用于IDE调试,并希望阻止它重新格式化PHP在浏览器中抛出的错误消息。我只想要常规的PHP错误消息,没有堆栈跟踪、表布局或其他任何内容。如何实现这一点?

您可以在php.ini中控制XDebug的堆栈跟踪:


对于完整配置选项:

在这种情况下,您需要设置:
xdebug.default\u enable=0
。这将在出现错误消息时禁用堆栈跟踪。

此代码将修复问题,而无需更改xdebug配置。

Derick建议的设置
xdebug.default_enable=0
效果良好,但需要更改xdebug设置

您可能希望使用
register\u shutdown\u function()注册自己的错误处理程序。

启用xdebug堆栈跟踪时,我发现了以下问题:

  • 响应代码始终为200,您无法覆盖该代码
  • 如果您正在处理类似API的东西,而API预期会以格式化错误消息(例如JSON错误响应)进行响应,这将导致响应格式错误,因为xdebug将在您可以使用自己注册的关闭函数进行输出之前进行输出

  • 有趣的是,当xdebug配置中未指定
    xdebug.default\u enable=0时,
    ini\u get('xdebug.default\u enable')
    将返回字符串“0”。如果设置
    xdebug.default\u enable=0
    ,则它也是字符串“0”。因此,您不能使用
    ini\u get('xdebug.default\u enable')
    来检测它是否已启用。

    此操作将从错误消息中删除表边框等。但是,错误仍然被连接在一起。请注意,
    xdebug\u disable()
    已经在xdebug 3中。在运行时,不再有任何方法可以禁用Xdebug格式的消息。
    if (function_exists('xdebug_disable')) {
        //Disables stack traces
        //Disable showing stack traces on error conditions.
        xdebug_disable();
    }