捕获 PHP 致命错误
PHP 的 set_error_handler() 在尝试捕获致命错误 (E_ERROR) 时通常会出现不足。当处理不存在的函数调用或其他触发致命错误的实例时,这变得尤其成问题。
要解决此限制,您可以使用 PHP 的 register_shutdown_function() 版本 5.2 。以下代码片段演示了其实现:
register_shutdown_function("fatal_handler"); function fatal_handler() { $errfile = "unknown file"; $errstr = "shutdown"; $errno = E_CORE_ERROR; $errline = 0; $error = error_get_last(); if ($error !== NULL) { $errno = $error["type"]; $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_mail(format_error($errno, $errstr, $errfile, $errline)); } }
要完成该解决方案,请定义 error_mail 和 format_error 函数。下面是一个示例:
function format_error($errno, $errstr, $errfile, $errline) { // Code to format and display error information goes here }
考虑使用 Swift Mailer 来实现 error_mail 功能。
有关其他参考,请浏览以下资源:
以上是如何使用'register_shutdown_function()”捕获 PHP 致命错误?的详细内容。更多信息请关注PHP中文网其他相关文章!