Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich schwerwiegende PHP-Fehler (E_ERROR) mit „register_shutdown_function()' abfangen und behandeln?
Problem:
Obwohl die Funktion set_error_handler() für die Erfassung der meisten effektiv ist Bei PHP-Fehlern werden schwerwiegende Fehler, wie etwa der Aufruf nicht vorhandener Funktionen, nicht behandelt. Daher suchen Entwickler nach alternativen Methoden zur Erfassung dieser kritischen Fehler.
Lösung:
PHP 5.2 bietet die Funktion register_shutdown_function(), die die Erfassung schwerwiegender Fehler ermöglicht. Hier ist eine Implementierung, um Fehler-E-Mails zu senden, wenn solche Fehler auftreten:
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)); } }
Unterstützende Funktionen:
Definieren Sie die erforderlichen unterstützenden Funktionen, z. B. format_error und error_mail. Die Funktion „format_error“ kann die Fehlerinformationen in einem Tabellenformat zurückgeben:
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
Verwenden Sie die Swift Mailer-Bibliothek, um die Funktion „error_mail“ zu implementieren.
Zusätzlich Ressourcen:
Das obige ist der detaillierte Inhalt vonWie kann ich schwerwiegende PHP-Fehler (E_ERROR) mit „register_shutdown_function()' abfangen und behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!