gpt4 book ai didi

php - 是否有可能捕获文件中发生的所有 PHP 错误

转载 作者:可可西里 更新时间:2023-10-31 22:13:56 25 4
gpt4 key购买 nike

我想捕获页面中的所有 PHP 错误(E_ERROR、E_WARNING、E_NOTICE 等),并将其记录到 MongoDB,以便更好地阅读和评论。

我找到了一种使用“error_get_last”捕获最后发生的错误并使用“register_shutdown_function”将其发送到我想要的任何地方的方法 Handle fatal errors in PHP using register_shutdown_function()

但是如果我的文件有不止一个错误,比如警告和通知,我怎样才能得到一个文件中的所有错误呢?这可能吗?我需要的是“error_get_all”之类的东西。

在这里你可以找到我的代码,这段代码有一个 fatal error ,两个警告和一个通知:

function shutdown() {
$error = error_get_last();
if ($error['type'] === E_ERROR || $error['type'] === E_WARNING || $error['type'] === E_NOTICE) {
var_dump($error);
}
}

register_shutdown_function('shutdown');

spl_autoload_register('foo');

$x = 5;
$y = 0;

echo 'x/y: ' . $x / $y . '<br/>';

foreach ($noarray as $noelement) {
echo 'no element: ' . $noelement . '<br/>';
}

最佳答案

答案是组合解决方案:

使用“set_error_handler”捕获所有可能的错误(参见 http://php.net/manual/en/function.set-error-handler.php ),并使用描述的 register_shutdown_function 记录由此遗漏的错误。

通过这样做,运行时期间的非 fatal error 将被自定义处理程序捕获,一直持续到脚本结束或发生 fatal error ,该错误将被自定义或关闭函数捕获,具体取决于类型。

关于php - 是否有可能捕获文件中发生的所有 PHP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com