J'ai du code PHP. Lorsque je l'exécute, un message d'avertissement apparaît.
Comment puis-je supprimer / supprimer / ignorer ces messages d'avertissement?
php
warnings
error-reporting
Alireza
la source
la source
Réponses:
Vous devez vraiment corriger ce qui cause l'avertissement, mais vous pouvez contrôler la visibilité des erreurs avec
error_reporting()
. Pour ignorer les messages d'avertissement, vous pouvez utiliser quelque chose comme:la source
E_ALL ^ E_WARNING
, permettant tous les rapports d'erreur en plus des avertissements, semble être un meilleur choix d'argumenterror_reporting
.Vous pouvez mettre un @ devant votre appel de fonction pour supprimer tous les messages d'erreur.
la source
dns_get_record
lanceront des avertissements. Votre code peut compenser l'avertissement, mais il les envoie quand même. La désactivation du rapport d'erreurs fonctionne sur le serveur de production, mais pas sur le serveur de développement. Si vous générez du contenu XML, l'avertissement empêchera le navigateur de s'afficher car le serveur envoie du XML mal formé provoqué par l'avertissement. Parfois, vous le souhaitez lors du développement, mais pas pour quelque chose provoqué par un échec de recherche DNS temporaire que vous compensez déjà.Pour supprimer les avertissements tout en laissant tous les autres rapports d'erreur activés:
la source
Si vous ne souhaitez pas afficher les avertissements ainsi que les erreurs, utilisez
Rapport d'erreurs - PHP Manual
la source
Si vous souhaitez supprimer les avertissements et certains autres types d'erreur (par exemple, les avis) lors de l'affichage de toutes les autres erreurs, vous pouvez procéder:
la source
dans Core Php pour masquer le message d'avertissement, définissez error_reporting (0) en haut du fichier include commun ou du fichier individuel.
Dans Wordpress, masquer les avertissements et les avis, ajoutez le code suivant dans le fichier wp-config.php
la source
Ne répondant pas exactement à la question, mais je pense que c'est un meilleur compromis dans certaines situations:
J'ai reçu un message d'avertissement à la suite d'une instruction printf () dans une bibliothèque tierce. Je savais exactement quelle était la cause - une solution temporaire pendant que le tiers corrigeait leur code. J'accepte que les avertissements ne doivent pas être supprimés, mais je n'ai pas pu démontrer mon travail à un client avec le message d'avertissement s'affichant à l'écran. Ma solution:
L'avertissement était toujours dans la source de la page pour rappel, mais invisible pour le client.
la source
ob_start()
et à laob_end_clean()
place. De cette façon, le contenu n'est même pas envoyé au navigateur (ce qu'il fait ici).Je le fais comme suit dans mon php.ini :
Cela enregistre uniquement les erreurs fatales et aucun avertissement.
la source
Je pense que la meilleure solution est la configuration de .htaccess De cette façon, vous n'avez pas à modifier le code d'application. Voici les directives pour Apache2
la source
Vous pouvez supprimer l'avertissement en utilisant error_reporting mais la meilleure façon est de corriger votre script en premier lieu.
Si vous ne savez pas comment, modifiez votre question et montrez-nous la ligne en question et l'avertissement qui s'affiche.
la source
Il y a déjà une réponse avec Error Control Operator mais il manque d'explication. Vous pouvez utiliser l'
@
opérateur avec chaque expression et il masque les erreurs (sauf les erreurs fatales).Pour le débogage, c'est une méthode rapide et parfaite. Mais vous ne devriez jamais l'utiliser en production ni inclure de façon permanente dans votre version locale. Cela vous donnera beaucoup d'irritation inutile.
Vous devriez plutôt considérer:
1. Paramètres de rapport d'erreur comme mentionné dans la réponse acceptée.
ou à partir des paramètres PHP INI
2. Détection des exceptions
la source
Pour ignorer tous les avertissements, utilisez cet exemple, en haut de votre code:
la source