종료 함수 등록을 통해 PHP 치명적인 오류 잡기
문제:
set_error_handler()가 처리할 수 있는 동안 대부분의 PHP 오류는 치명적인 오류(E_ERROR)를 포착하지 못합니다. 존재하지 않는 함수를 호출하여 발생하는 오류입니다.
해결책:
PHP 5.2에는 치명적인 오류를 기록할 수 있는 Register_shutdown_function이 도입되었습니다.
register_shutdown_function("fatal_handler"); function fatal_handler() { // Capture error information $error = error_get_last(); if ($error) { error_mail(format_error( $error["type"], $error["message"], $error["file"], $error["line"] )); } }
오류 형식을 지정하는 format_error 함수 정보:
function format_error($errno, $errstr, $errfile, $errline) { // Generate the error trace $trace = print_r(debug_backtrace(false), true); // Format the error information $content = <<<HTML <table border="1"> <thead> <th>Item</th> <th>Description</th> <thead> <tbody> <tr> <td>Error</td> <td><pre class="brush:php;toolbar:false">$errstr
$errno
$trace
메일링 기능을 처리하려면 error_mail 함수를 정의하고 Swift Mailer와 같은 라이브러리 사용을 고려하세요.
추가 리소스:
위 내용은 Register_shutdown_function을 사용하여 치명적인 PHP 오류를 어떻게 잡을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!