Le comportement de ces fonctions est
affecté par la configuration dans le fichier php.ini.
Voici un éclaircissement sur
l'utilisation des directives de configuration.
-
error_reporting
int
-
Fixe le niveau d'erreur. Ce paramètre est un entier, représentant un
champ de bits. Ajoutez les valeurs suivantes pour choisir le niveau
que vous désirez, telles que décrites dans la section
Constantes pré-définies,
et dans le fichier php.ini. Pour modifier cette configuration durant
l'exécution du script, utilisez la fonction
error_reporting(). Voyez aussi la directive
display_errors.
La valeur par défaut est E_ALL
.
Antérieur à PHP 8.0.0, la valeur par défaut était :
E_ALL
&
~E_NOTICE
&
~E_STRICT
&
~E_DEPRECATED
.
Ceci signifie que les diagnostics de niveau E_NOTICE
,
E_STRICT
et E_DEPRECATED
n'était pas affichés.
Note:
Les constantes PHP en dehors de PHP
L'utilisation des constantes PHP en dehors de PHP, comme dans le fichier
httpd.conf, n'a pas de signification utile mis à part
dans les cas où des valeurs entières sont nécessaires. Et depuis que les niveaux
d'erreurs ont été ajoutés, la valeur maximale (pour E_ALL
)
devrait changer. Donc, à la place de E_ALL
, utilisez
plutôt une valeur plus grande pour couvrir tous les octets, une valeur numérique comme
2147483647
(incluant toutes les erreurs, et non juste
les erreurs de type E_ALL
).
-
display_errors
string
-
Cette directive détermine si les erreurs doivent être
affichées à l'écran ou non.
La valeur "stderr"
envoie les erreurs vers stderr
plutôt que vers stdout
.
Note:
C'est une directive nécessaire en développement, mais qui ne doit jamais être utilisée
sur un système en production. (e.g. systèmes connectés à Internet).
Note:
Bien que display_errors peut être défini en cours d'exécution (avec
la fonction ini_set()), il n'aura aucun effet si le script
a des erreurs fatales, car l'action désirée au moment de l'exécution
ne sera pas exécutée.
-
display_startup_errors
bool
-
Même si display_errors est activé, des erreurs peuvent survenir lors
de la séquence de démarrage de PHP, et ces erreurs sont cachées.
Avec cette option, vous pouvez les afficher, ce qui est recommandé
pour le débogage. En dehors de ce cas, il est fortement recommandé
de laisser display_startup_errors à off.
-
log_errors
bool
-
Indique si les messages d'erreur générés par les scripts devraient
être journalisés dans le journal d'erreurs du serveur ou dans
error_log.
Cette fonction est spécifique aux serveurs.
Note:
Il est recommandé d'utiliser l'historique d'erreur, plutôt que
d'afficher les erreurs sur les sites de production.
-
log_errors_max_len
int
-
Configure la taille maximale des erreurs qui seront enregistrées dans
l'historique, en kilo octets. Dans les informations de
error_log, l'origine est ajoutée.
La valeur par défaut est de 1024. 0 signifie qu'il n'y a pas de limite de
taille. Cette longueur est appliquée pour enregistrer dans l'historique
les erreurs, afficher les erreurs et également à $php_errormsg
mais pas pour les appels explicites aux fonctions comme error_log().
Lorsqu'un entier est utilisé,
sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique
comme décrit dans cette
entrée de la FAQ..
-
ignore_repeated_errors
bool
-
Ne pas enregistrer des messages répétitifs. Les erreurs répétées
doivent survenir au même moment, à la même ligne et depuis le même fichier de script,
à moins que ignore_repeated_source
soit défini à true
.
-
ignore_repeated_source
bool
-
Ignore la source du message lors des messages répétés. Lorsque vous avez configuré
cette option à On, vous n'enregistrerez pas les erreurs répétées
provenant de fichiers et lignes de code différents.
-
report_memleaks
bool
-
Si ce paramètre est défini à On (par défaut), il affichera un rapport de
fuite mémoire détectée par le gestionnaire de mémoire Zend. Ce rapport
sera envoyé à stderr sur les plateformes Posix. Sous Windows, il sera
envoyé au débogueur en utilisant OutputDebugString() et pourra être lu
avec des outils comme » DbgView.
Ce paramètre n'a d'effet que lors d'une compilation de débogage, et si
error_reporting inclut E_WARNING
dans sa liste autorisée.
-
track_errors
bool
-
Si cette option est activée, le dernier message d'erreur sera placé dans la
variable $php_errormsg.
-
html_errors
bool
-
Si activé, les messages d'erreur incluront les balises HTML. Le format
des erreurs HTML produira des messages clickable qui redirigeront l'utilisateur
vers une page décrivant l'erreur ou la fonction qui a causé l'erreur.
Ces références sont affectées par
docref_root et
docref_ext.
Si désactivé, le message d'erreur sera rendu en texte plein.
-
xmlrpc_errors
bool
-
Si activé, désactive le rapport normal d'erreur et formate les erreurs
comme des messages d'erreur XML-RPC.
-
xmlrpc_error_number
int
-
Utilisé comme valeur de l'élément XML-RPC faultcode.
-
docref_root
string
-
Le nouveau format d'erreur contient une référence à une page décrivant
l'erreur, ou la fonction ayant causé l'erreur. Pour le manuel, vous pouvez
télécharger ce dernier dans votre langue, et configurer cette option pour qu'elle
pointe sur lui. Si votre copie du manuel est accessible à
"/manual/"
, vous pouvez simplement utiliser
docref_root=/manual/
. De plus, vous devez configurer
docref_ext
pour qu'elle corresponde aux extensions de votre manuel.
docref_ext=.html
. Il est possible d'utiliser des
références externes. Par exemple, vous pouvez utiliser
docref_root=http://manual/en/
ou
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon&url=http%3A%2F%2Fwww.php.net%2F"
La plupart du temps, vous utilisez l'option docref_root avec un slash a la fin ("/"
).
Mais ce n'est pas obligatoire, comme le montre le second exemple ci-dessus.
Note:
Cette directive est destiné à vous aider dans votre développement en rendant
facile la consultation de la description d'une fonction. Ne jamais l'utiliser sur un
système de production (e.g. système connecté à Internet).
-
docref_ext
string
-
Voir aussi docref_root.
Note:
La valeur de docref_ext doit commencer par un point "."
.
-
error_prepend_string
string
-
La chaîne à placer avant les messages d'erreur.
Seulement utilisé quand le message d'erreur est affiché à l'écran.
L'usage principal est de pouvoir ajouter du balisage HTML additionnel
avant le message d'erreur.
-
error_append_string
string
-
La chaîne à placer après les messages d'erreur.
Seulement utilisé quand le message d'erreur est affiché à l'écran.
L'usage principal est de pouvoir ajouter du balisage HTML additionnel
après le message d'erreur.
-
error_log
string
-
Nom du fichier où seront enregistrées les erreurs. Le fichier
doit être accessible en écriture par l'utilisateur exécutant
le serveur web. Si la
valeur spéciale syslog
est utilisée, les erreurs
seront envoyées au système d'historique du serveur. Sous
Unix, cela correspond à syslog(3) et sous Windows à
l'historique d'événement. Voir aussi : syslog().
Si cette directive n'est pas fixée, les erreurs sont envoyées au journal
d'erreurs SAPI. Par exemple, s'il s'agit d'une erreur de journal dans
Apache ou stderr
dans CLI.
Voir aussi la fonction error_log().
-
error_log_mode
int
-
Mode de fichier pour le fichier définit pour
error_log.
-
syslog.facility
string
-
Spécifie le type de programme qui consigne le message. Uniquement
efficace si error_log est défini
sur "syslog".
-
syslog.filter
string
-
Spécifie le type de filtre pour filtrer les messages consignés. Les
caractères autorisés sont passés non modifiés ; tous les autres sont
écrits dans leur représentation hexadécimale préfixée avec \x
.
-
all
– la chaîne consignée sera séparée lors
des caractères de retour à la ligne, et tous les caractères sont
transmit sans altérations
-
ascii
– la chaîne consignée sera séparée lors
des caractères de retour à la ligne, et tout caractère 7-bit ASCII
non imprimable sera échappé
-
no-ctrl
– la chaîne consignée sera séparée lors
des caractères de retour à la ligne, et les caractères non imprimables
seront échappés
-
raw
– tous les caractères sont passés au
système de consignation sans altérations, sans séparations aux retours
à la ligne (identique à PHP antérieur à 7.3)
Ce paramètre affectera le consignation via
error_log définit à "syslog" et
les appels à syslog().
Note:
Le type de filtre raw
est disponible à partir de PHP 7.3.8 et PHP 7.4.0.
Cette directive n'est pas supportée sur Windows.
-
syslog.ident
string
-
Spécifie la chaîne d'identité qui est ajoutée à chaque message.
Uniquement efficace si error_log est
défini sur "syslog".