首頁 >後端開發 >php教程 >如何處理 PHP 5.2 中的致命 PHP 錯誤 (E_ERROR)?

如何處理 PHP 5.2 中的致命 PHP 錯誤 (E_ERROR)?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-19 17:01:13300瀏覽

How to Handle Fatal PHP Errors (E_ERROR) in PHP 5.2 ?

處理致命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
$errno
File $errfile Line $errline Trace
$trace
"; return $content; }要傳送電子郵件,請使用 Swift Mailer 定義 error_mail() 函數。

其他資源:

    $php_errormsg
  • 預設常數

以上是如何處理 PHP 5.2 中的致命 PHP 錯誤 (E_ERROR)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn