Maison >développement back-end >Problème PHP >Comment implémenter PHP pour afficher les erreurs uniquement localement

Comment implémenter PHP pour afficher les erreurs uniquement localement

PHPz
PHPzoriginal
2023-03-29 10:10:46433parcourir

PHP est un langage de développement Web couramment utilisé, mais pendant le processus de développement, il est inévitable de rencontrer diverses erreurs et exceptions. Afin de mieux résoudre le problème, nous devons souvent générer des informations d'erreur. Cependant, dans certains cas, nous pouvons simplement souhaiter afficher l'erreur localement et ne pas vouloir que l'utilisateur la voie. Alors, comment PHP implémente-t-il cette fonction ?

Tout d’abord, nous devons comprendre le mécanisme de gestion des erreurs de PHP. En PHP, toutes les erreurs et exceptions seront converties en objets d'exception, puis capturées et gérées par le gestionnaire d'exceptions global. Ce gestionnaire d'exceptions affichera un message d'erreur et mettra fin à l'exécution du script par défaut. Par conséquent, dans un environnement de production, nous devons désactiver ou modifier ce gestionnaire d'exceptions pour mieux protéger la sécurité de l'utilisateur.

Ensuite, nous pouvons commencer à explorer comment afficher uniquement les erreurs localement. PHP propose diverses méthodes pour réaliser cette fonction, la plus courante étant d'utiliser la fonction de journalisation de PHP. Nous pouvons écrire des informations sur les erreurs dans les fichiers journaux et afficher les fichiers journaux localement pour détecter et résoudre les problèmes à temps. Voici un exemple de code :

//设置错误和异常处理器
set_error_handler(function($errno, $errstr, $errfile, $errline ){
    error_log("[$errno] $errstr in $errfile on line $errline", 0);
    echo "出现了一个错误,请稍后再试";
});

set_exception_handler(function($exception){
    error_log($exception->__toString(), 0);
    echo "出现了一个错误,请稍后再试";
});

//假设定义了一个函数calculate,这里调用并处理错误信息
function calculate($a, $b){
    if ($b == 0){
        trigger_error("除数不能为0", E_USER_ERROR);
    }
    return $a / $b;
}

$a = 10;
$b = 0;

$res = calculate($a, $b);

echo $res;

Dans le code ci-dessus, nous définissons d'abord un gestionnaire d'erreurs et d'exceptions personnalisé pour afficher les informations d'erreur dans le fichier journal et afficher les informations d'erreur sur le front-end pour inviter l'utilisateur. Définissez ensuite une fonction de calcul, et lorsque le diviseur est 0, nous utilisons la fonction trigger_error pour déclencher une erreur au niveau de l'utilisateur et ajouter quelques paramètres supplémentaires au message d'erreur. Enfin, nous appelons la fonction calculate et imprimons les résultats.

Pendant tout le processus, les messages d'erreur ne seront affichés que localement et ne seront pas exposés aux utilisateurs. Les informations sur l'erreur seront écrites dans le fichier journal et nous pourrons résoudre l'erreur en affichant le fichier journal. Bien entendu, dans un environnement de production réel, nous pouvons écrire des fichiers journaux sur un serveur de journaux dédié pour un meilleur débogage et une meilleure gestion.

En bref, seule la sortie locale des erreurs en PHP peut être obtenue en personnalisant les gestionnaires d'erreurs et d'exceptions, en utilisant la journalisation et d'autres méthodes. Cela protège la confidentialité et la sécurité des utilisateurs et nous permet de résoudre les problèmes en temps opportun.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn