捕捉 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中文網其他相關文章!