문제:
set_error_handler() 함수는 대부분의 PHP 오류를 캡처하는 데 효과적이지만 PHP 오류, 존재하지 않는 함수 호출과 같은 치명적인 오류를 처리하지 못합니다. 이로 인해 개발자는 이러한 심각한 오류를 캡처하기 위한 대체 방법을 찾게 됩니다.
해결책:
PHP 5.2는 치명적인 오류를 캡처할 수 있는 Register_shutdown_function() 함수를 제공합니다. 다음은 이러한 오류가 발생할 때 오류 이메일을 보내는 구현입니다.
register_shutdown_function("fatal_handler"); function fatal_handler() { $error = error_get_last(); // Obtain last error if ($error !== NULL) { $errno = $error["type"]; $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_mail(format_error($errno, $errstr, $errfile, $errline)); } }
지원 기능:
format_error 및 error_mail과 같은 필요한 지원 기능을 정의합니다. format_error 함수는 오류 정보를 테이블 형식으로 반환할 수 있습니다:
function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); $content = <<<HTML <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 함수를 구현하세요.
추가 리소스:
위 내용은 `register_shutdown_function()`을 사용하여 치명적인 PHP 오류(E_ERROR)를 어떻게 포착하고 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!