치명적인 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)); } }
error_mail() 및 format_error() 함수를 구현해야 합니다. 예:
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
이메일을 보내려면 Swift Mailer를 사용하여 error_mail() 함수를 정의하세요.
추가 리소스:
위 내용은 PHP 5.2에서 치명적인 PHP 오류(E_ERROR)를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!