Position actuelle: Accueil> Derniers articles> Conseils de gestion des erreurs PHP 7: comment envoyer des rapports d'erreur à la boîte aux lettres de l'administrateur via la fonction set_error_handler

Conseils de gestion des erreurs PHP 7: comment envoyer des rapports d'erreur à la boîte aux lettres de l'administrateur via la fonction set_error_handler

M66 2025-06-11

Créer une fonction de traitement des erreurs

Lors du développement d'applications PHP, la gestion des erreurs est une partie importante de l'assurance de la stabilité du système. En capturant et en gérant rapidement les erreurs, les développeurs peuvent rapidement dépanner et résoudre les problèmes du programme pour assurer le fonctionnement fiable du système. Cet article introduira une technique pour envoyer des rapports d'erreur aux boîtes aux lettres de l'administrateur à l'aide de la fonction set_error_handler.

1. Créez une fonction de gestion des erreurs personnalisée

Tout d'abord, nous devons créer une fonction de gestion des erreurs personnalisée. Cette fonction attrapera une erreur PHP et enverra le message d'erreur à la boîte aux lettres de l'administrateur. Voici l'exemple de code:

<?php
function sendErrorReport($errno, $errstr, $errfile, $errline) {
    $to = 'admin@example.com';  // Adresse e-mail de l&#39;administrateur
    $subject = 'PHP Rapport d&#39;erreur';  // Sujet par e-mail
    $message = "message d&#39;erreur:[$errno] $errstr - $errfile:$errline";  // Détails d&#39;erreur
    // Envoyer un e-mail
    if (mail($to, $subject, $message)) {
        return true;
    } else {
        return false;
    }
}
?>

Le code ci-dessus définit un gestionnaire d'erreurs appelé SenderRorReport. Cette fonction reçoit le niveau d'erreur ($ errno), le message d'erreur ($ errstr), le fichier d'erreur ($ errfile) et le numéro de ligne d'erreur ($ errline) en tant que paramètres, et envoie le message d'erreur à la boîte aux lettres spécifiée par l'administrateur via la fonction de messagerie.

2. Définissez la fonction de gestion des erreurs

Ensuite, nous utilisons la fonction set_error_handler pour définir une fonction de gestion des erreurs personnalisée. Voici un exemple de code de la façon de le configurer:

<?php
// 设置Rapport d&#39;erreur级别
error_reporting(E_ALL);
// Afficher l&#39;erreur
ini_set('display_errors', 1);
// Définition de la fonction de traitement des erreurs
set_error_handler('sendErrorReport');
?>

Dans le code ci-dessus, nous définissons d'abord le niveau de rapport d'erreur sur E_ALL via la fonction Error_Reportting pour nous assurer que tous les types d'erreurs PHP sont capturés. Ensuite, nous activons la fonction d'affichage d'erreur via la fonction ini_set. Enfin, nous utilisons la fonction set_error_handler pour définir la fonction de gestion des erreurs personnalisée SenderRorReport comme fonction de traitement par défaut d'erreur.

À la fin du code, nous créons une erreur en sortie délibérément une variable non définie. À l'heure actuelle, le message d'erreur sera capturé par la fonction SENDERRORREPORT et envoyé à la boîte aux lettres de l'administrateur.

3. Choses à noter

Il convient de noter que le jeu de fonction de gestion des erreurs à l'aide de set_error_handler ne peut attraper que des erreurs rapportées par PHP et ne peut pas attraper des erreurs de syntaxe ou des erreurs fatales. Pour ces types d'erreurs, les développeurs doivent toujours obtenir les détails en affichant le journal d'erreur PHP ou le journal du serveur.

De plus, pour garantir la fiabilité des rapports d'erreur, un traitement d'erreur supplémentaire est recommandé avant d'envoyer des rapports d'erreur. Par exemple, les informations d'erreur peuvent être enregistrées dans un fichier journal ou une base de données afin que les détails d'erreur puissent toujours être obtenus si l'e-mail est envoyé pour défaillance.

Résumer

Cet article décrit des conseils sur la façon d'utiliser la fonction SET_ERROR_HANDLER de PHP 7 pour envoyer des rapports d'erreur aux boîtes aux lettres de l'administrateur. Grâce à des fonctions de traitement des erreurs personnalisées, les développeurs peuvent comprendre instantanément les erreurs dans l'application et les dépanner et les réparer rapidement, améliorant ainsi la stabilité et la fiabilité du système. J'espère que cette technique peut vous aider à améliorer le mécanisme de gestion des erreurs et à améliorer l'efficacité du développement.