&reftitle.examples; Ci-dessous, se trouve un exemple de gestion des erreurs par PHP. Il y est défini un gestionnaire d'erreur, qui enregistre les informations dans un fichier (au format XML), et envoie un courriel au développeur si l'erreur est critique. Gestion d'erreurs avancées en PHP 'Erreur', E_WARNING => 'Alerte', E_PARSE => 'Erreur d\'analyse', E_NOTICE => 'Note', E_CORE_ERROR => 'Erreur du noyau', E_CORE_WARNING => 'Alerte du noyau', E_COMPILE_ERROR => 'Erreur de compilation', E_COMPILE_WARNING => 'Alerte de compilation', E_USER_ERROR => 'Erreur spécifique', E_USER_WARNING => 'Alerte spécifique', E_USER_NOTICE => 'Note spécifique', E_STRICT => 'Note d\'exécution', E_RECOVERABLE_ERROR => 'Erreur fatale rattrapable' ); // Les niveaux qui seront enregistrés $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); $err = "\n"; $err .= "\t" . $dt . "\n"; $err .= "\t" . $errno . "\n"; $err .= "\t" . $errortype[$errno] . "\n"; $err .= "\t" . $errmsg . "\n"; $err .= "\t" . $filename . "\n"; $err .= "\t" . $linenum . "\n"; if (in_array($errno, $user_errors)) { $err .= "\t".wddx_serialize_value($vars,"Variables")."\n"; } $err .= "\n\n"; // pour tester // echo $err; // sauvegarde de l'erreur, et mail si c'est critique error_log($err, 3, "/usr/local/php4/error.log"); if ($errno == E_USER_ERROR) { mail("phpdev@example.com","Critical User Error",$err); } } function distance($vect1, $vect2) { if (!is_array($vect1) || !is_array($vect2)) { trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR); return NULL; } if (count($vect1) != count($vect2)) { trigger_error("Vectors need to be of the same size", E_USER_ERROR); return NULL; } for ($i=0; $i ]]>