Umgang mit schwerwiegenden PHP-Fehlern (E_ERROR)
Problem:
Wenn ein schwerwiegender Fehler auftritt In einem PHP-Skript, beispielsweise beim Aufruf einer nicht vorhandenen Funktion, kann der Fehler nicht mit der Funktion set_error_handler() abgefangen werden. Wie können Sie mit diesen kritischen Fehlern umgehen?
Lösung:
Um schwerwiegende Fehler in PHP 5.2 abzufangen, verwenden Sie die Funktion register_shutdown_function():
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)); } }
Sie müssen die Funktionen error_mail() und format_error() implementieren, z Beispiel:
function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); $content = " <table> <thead><th>Item</th><th>Description</th></thead> <tbody> <tr> <th>Error</th> <td><pre class="brush:php;toolbar:false">$errstr
$errno
$trace
Zum Senden von E-Mails verwenden Sie Swift Mailer, um die Funktion error_mail() zu definieren.
Zusätzliche Ressourcen:
Das obige ist der detaillierte Inhalt vonWie gehe ich mit schwerwiegenden PHP-Fehlern (E_ERROR) in PHP 5.2 um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!