處理致命PHP (E_ERROR) 錯誤
問題:
如果發生致命錯誤在PHP腳本中,例如呼叫不存在的函數,錯誤無法被捕獲使用set_error_handler() 函數。如何處理這些嚴重錯誤?
解決方案:
要捕獲PHP 5.2 中的致命錯誤,請使用register_shutdown_function() 函數:
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)); } }
function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); $content = " <table> <thead><th>Item</th><th>Description</th></thead> <tbody> <tr> <th>Error</th> <td><pre class="brush:php;toolbar:false">$errstr
$errno
$trace
其他資源:
以上是如何處理 PHP 5.2 中的致命 PHP 錯誤 (E_ERROR)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!