Schwerwiegende PHP-Fehler abfangen
PHPs set_error_handler() versagt oft, wenn versucht wird, schwerwiegende Fehler (E_ERROR) abzufangen. Dies wird besonders problematisch, wenn mit nicht vorhandenen Funktionsaufrufen oder anderen Instanzen gearbeitet wird, die schwerwiegende Fehler auslösen.
Um diese Einschränkung zu umgehen, können Sie PHPs register_shutdown_function() für Versionen 5.2 verwenden. Der folgende Codeausschnitt demonstriert die Implementierung:
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)); } }
Um die Lösung zu vervollständigen, definieren Sie die Funktionen error_mail und format_error. Hier ist ein Beispiel:
function format_error($errno, $errstr, $errfile, $errline) { // Code to format and display error information goes here }
Erwägen Sie den Einsatz von Swift Mailer für die error_mail-Funktionalität.
Weitere Informationen finden Sie in den folgenden 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!