Problème :
Bien que la fonction set_error_handler() soit efficace pour capturer la plupart Erreurs PHP, il ne parvient pas à gérer les erreurs fatales, telles que l'appel de fonctions inexistantes. Cela oblige les développeurs à rechercher des méthodes alternatives pour capturer ces erreurs critiques.
Solution :
PHP 5.2 fournit la fonction register_shutdown_function() qui permet de capturer les erreurs fatales. Voici une implémentation pour envoyer des e-mails d'erreur lorsque vous rencontrez de telles erreurs :
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)); } }
Fonctions de support :
Définissez les fonctions de support nécessaires, telles que format_error et error_mail. La fonction format_error peut renvoyer les informations d'erreur sous forme de tableau :
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
Utilisez la bibliothèque Swift Mailer pour implémenter la fonction error_mail.
Supplémentaire Ressources :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!