Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit register_shutdown_function schwerwiegende PHP-Fehler abfangen?
Schwerwiegende PHP-Fehler durch Registrieren einer Shutdown-Funktion abfangen
Problem:
Während set_error_handler() damit umgehen kann Bei den meisten PHP-Fehlern werden schwerwiegende Fehler (E_ERROR), die beispielsweise durch den Aufruf „nonexistent“ verursacht werden, nicht erfasst Funktionen.
Lösung:
PHP 5.2 führt die Funktion register_shutdown_function ein, mit der Sie schwerwiegende Fehler protokollieren können:
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"] )); } }
Definieren Sie die Funktion format_error, um den Fehler zu formatieren Informationen:
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
Um die Mailing-Funktionalität zu handhaben, definieren Sie die Funktion error_mail und erwägen deren Verwendung eine Bibliothek wie Swift Mailer.
Zusätzliche Ressourcen:
Das obige ist der detaillierte Inhalt vonWie kann ich mit register_shutdown_function schwerwiegende PHP-Fehler abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!