Afficher toutes les erreurs en PHP
-
Utilisez la fonction
error_reporting('E_ALL')
et la fonctionini_set()
avec la directivedisplay_errors
pour afficher une erreur d’avertissement -
Utilisez la fonction
error_reporting('-1')
et la fonctionini_set()
avec les directivesdisplay_errors
etdisplay_startup_errors
pour afficher l’erreur -
Modifier les directives dans le fichier
php.ini
pour afficher toutes les erreurs, y compris les erreurs d’analyse en PHP
Nous allons introduire un moyen d’afficher les erreurs dans le script PHP en utilisant la fonction error_reporting()
et la fonction ini_set()
. La première méthode rapporte l’erreur tandis que la deuxième méthode remplace le fichier php.ini
ou le fichier de configuration Apache et s’active pour afficher les erreurs du script courant uniquement.
Nous allons montrer une autre façon d’afficher les erreurs PHP en utilisant les mêmes fonctions - la fonction error_reporting()
et la fonction ini_set()
comme dans la première méthode. Le point critique qui différencie cette méthode de la première est qu’elle utilise une autre fonction ini_set()
avec la directive display_startup_errors
et la fonction error_reporting()
prend une valeur entière comme argument.
Nous allons introduire une solution permanente pour afficher toutes les erreurs PHP, en modifiant la configuration dans le fichier php.ini
. Les deux méthodes mentionnées ci-dessus n’aideront pas à afficher les erreurs d’analyse telles que les accolades et les points-virgules manquants.
Utilisez la fonction error_reporting('E_ALL')
et la fonction ini_set()
avec la directive display_errors
pour afficher une erreur d’avertissement
Nous pouvons utiliser la fonction error_reporting()
pour signaler tous les types d’erreurs dans le script PHP. Pour cela, nous utilisons la constante nommée E_ALL
comme argument dans la fonction. Il signale toutes sortes d’erreurs PHP. Et puis, nous pouvons utiliser la fonction ini_set()
pour afficher les erreurs rapportées. La fonction définit la directive display_errors
sur true. Ainsi, il définit la configuration dans le fichier php.ini
pour définir la visibilité des erreurs. Cependant, la valeur d’origine des directives sera restaurée dans le fichier php.ini
après l’exécution du script courant.
Pour la démonstration, écrivez error_reporting(E_ALL)
comme première ligne du code de script. Réglez display_errors
sur 1
dans la fonction ini_set
. Faites écho à un message comme 'This is a warning errorr'
. Utilisez la fonction include()
pour inclure un fichier externe appelé file.php
. Exécutez ensuite le script.
L’exemple ci-dessous tente d’afficher une erreur d’avertissement en PHP. Ce type d’erreur indique qu’il y a un problème dans le script sans arrêter l’exécution du script. L’exemple inclut le fichier file.php
dans le script. Puisqu’il n’y a pas de fichier de ce type dans le dossier racine, le script ne chargera pas le fichier et affichera les erreurs. Comme il s’agit d’une erreur d’avertissement, l’instruction echo
accompagne les erreurs. Pour en savoir plus sur la fonction error_reporting()
, veuillez consulter le manuel PHP
Exemple de code:
# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>
Production:
This is a warning error
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5**
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**
Utilisez la fonction error_reporting('-1')
et la fonction ini_set()
avec les directives display_errors
et display_startup_errors
pour afficher l’erreur
La fonction error_reporting()
prend également une valeur entière comme argument. Nous pouvons utiliser cette méthode pour afficher les erreurs en PHP. Il existe de nombreux niveaux d’erreurs en PHP. Le niveau -1
désigne toutes les erreurs PHP. Passer la valeur -1
fonctionnera dans les futures versions de PHP, même avec de nouveaux niveaux et constantes. Parfois, la directive display_errors
de la fonction ini_set()
ne gère pas toujours les erreurs rencontrées au démarrage de PHP. Dans de tels cas, nous pouvons utiliser display_startup_errors
pour afficher les erreurs.
Par exemple, définissez les direcitves de la fonction ini_set()
comme display_startup_errors
et display_errors
. Définissez-les sur true
en notant 1
dans la fonction ini_set()
. Réglez error_reporting
sur -1
. Attribuez une valeur de 10 à une variable $a
et affichez une variable $b
.
Dans l’exemple ci-dessous, le script rencontre une erreur de notification. Le code tente d’imprimer la variable non définie. Pour en savoir plus sur la fonction ini_set()
, veuillez consulter le manuel PHP.
Exemple de code:
#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>
Production:
**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**
Modifier les directives dans le fichier php.ini
pour afficher toutes les erreurs, y compris les erreurs d’analyse en PHP
Nous pouvons modifier les directives dans le fichier php.ini
pour afficher les erreurs PHP lorsque ce qui précède ne fonctionne pas. Le fichier php.ini
contient les configurations par défaut nécessaires à l’exécution d’un script PHP. Les méthodes mentionnées ci-dessus ne modifient la valeur des directives qu’au runtime tandis que la modification du fichier php.ini
change définitivement les valeurs. Cependant, nous ne devons pas suivre cette pratique au niveau de la production. Consultez le manuel PHP pour en savoir plus sur le fichier de configuration en PHP.
Pour changer la valeur des directives du fichier php.ini
, localisez d’abord le fichier dans votre système. Utilisez le script suivant.
#php 7.x
<?php
phpinfo();
?>
Localisez Loaded Configuration File
, et vous pouvez voir l’emplacement du fichier php.ini
. Dans le fichier, localisez les directives display_errors
et display_startup_errors
et changez la valeur en on
. Localisez error_reporting
et changez en error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING
. Ensuite, redémarrez le serveur Web Apache.
Par exemple, dans le fichier PHP, définissez le error_reporting(-1)
. Attribuez une valeur Orange
à la variable $a
mais n’écrivez pas de point-virgule après celle-ci. Imprimez la variable sur une autre ligne.
Dans la section de sortie de l’exemple de code, l’erreur d’analyse est rencontrée et affichée. Ainsi, la configuration du fichier php.ini
peut également afficher les erreurs d’analyse.
Exemple de code:
#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>
Production:
**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn