Schwerwiegende PHP-Fehler mit register_shutdown_function abfangen
In PHP ist set_error_handler() für die Behandlung der meisten Fehler nützlich. Es kann jedoch keine schwerwiegenden Fehler erfassen, die beispielsweise durch den Aufruf nicht vorhandener Funktionen verursacht werden. Um diese Einschränkung zu beheben, können wir register_shutdown_function verwenden.
Register_shutdown_function
register_shutdown_function() ist eine Funktion, die aufgerufen werden kann, wenn PHP heruntergefahren wird. Als Parameter wird eine benutzerdefinierte Funktion verwendet. Diese Funktion kann dann alle nicht behandelten Fehler erfassen, die während der Ausführung aufgetreten sind.
register_shutdown_function("fatal_handler"); function fatal_handler() { $error = error_get_last(); if ($error !== NULL) { // Extract error information $errno = $error["type"]; $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; // Send error details via email using error_mail error_mail(format_error($errno, $errstr, $errfile, $errline)); } }
Zusätzliche Funktionen
Im obigen Code haben wir die Existenz von zwei zusätzlichen Funktionen angenommen : error_mail und format_error. So können Sie sie definieren:
function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); $content = "..."; // Format the error message as needed return $content; }
function error_mail($content) { // Use Swift Mailer or other mail-sending library to send the error email }
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWie kann ich mit „register_shutdown_function()' schwerwiegende Fehler in PHP abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!