是否可以捕获文件中发生的所有PHP错误
发布时间:2020-12-13 17:41:59 所属栏目:PHP教程 来源:网络整理
导读:我想在页面中捕获所有 PHP错误(E_ERROR,E_WARNING,E_NOTICE,..)并将其记录到MongoDB,以便更好地阅读和评论. 我找到了一种方法来捕捉’error_get_last’发生的最后一次错误并使用’register_shutdown_function’Handle fatal errors in PHP using register_sh
我想在页面中捕获所有
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’. 在这里你可以找到我的代码,这段代码有一个致命的错误,两个警告和一个通知: 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记录错过的错误. 通过执行此操作,运行时期间的非致命错误将被自定义处理程序捕获,一直持续到脚本结束或发生致命错误,该错误将由自定义或关闭函数捕获,具体取决于类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |