Gerer les erreurs avec simplexml

Le
Lann
Bonjour,

J'ai un script pour traiter du XML transmis via un formulaire de la
forme :

if ($xml = simplexml_load_string($texte_recu)) {

}else{
// faire quelque chose
}

D'après la doc, simplexml_load_string() crée un objet ou renvoit FALSE
en cas d'erreur. Mon souci, c'est que si le texte reçu est du XML mal
formé ou pas du XML du tout, PHP affiche plein de messages d'erreurs
et ne se contente pas de renvoyer FALSE.
Pour ne pas avoir ces messages d'erreur et se contenter de ce qui suit
le else, y at'il une autre solution que de mettre "error_reporting
(0);" ? Ca m'embête par rapport aux autres erreurs que peut générer le
script.

Je précise que je ne suis pas un pro de PHP.
Merci d'avance pour les réponses.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal PONCET
Le #18764951
Lann a écrit :
Pour ne pas avoir ces messages d'erreur et se contenter de ce qui suit
le else, y at'il une autre solution que de mettre "error_reporting
(0);" ? Ca m'embête par rapport aux autres erreurs que peut générer le
script.



Bonjour,

D'une manière générale, les messages d'erreur de type "Warning" peuvent
être cachés en ajoutant un "@" avant l'appel de la fonction qui les
génère (ex: $xml = @ simplexml_load_string($texte)).

Cordialement,
Pascal
Tonio
Le #18764961
Hello,

libxml_use_internal_errors(true);

avant ton simplexml_load_string devrais faire l'affaire.

Tonio.

On Feb 25, 3:18 pm, Lann
Bonjour,

J'ai un script pour traiter du XML transmis via un formulaire de la
forme :

if ($xml = simplexml_load_string($texte_recu)) {
   ...}else{

   // faire quelque chose

}

D'après la doc, simplexml_load_string() crée un objet ou renvoit FALSE
en cas d'erreur. Mon souci, c'est que si le texte reçu est du XML mal
formé ou pas du XML du tout, PHP affiche plein de messages d'erreurs
et ne se contente pas de renvoyer FALSE.
Pour ne pas avoir ces messages d'erreur et se contenter de ce qui suit
le else, y at'il une autre solution que de mettre "error_reporting
(0);" ? Ca m'embête par rapport aux autres erreurs que peut générer le
script.

Je précise que je ne suis pas un pro de PHP.
Merci d'avance pour les réponses.


Mickael Wolff
Le #18764971
Lann wrote:
J'ai un script pour traiter du XML transmis via un formulaire de la
forme :

if ($xml = simplexml_load_string($texte_recu)) {



if ($xml = @simplexml_load_string($texte_recu)) {

@ est l'opérateur de silence.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Lann
Le #18769681
Merci beaucoup !

Je n'avais pas pensé au "@", il faut que je me le colle dans la tête !
Je ne connaissait pas la fonction libxml_use_internal_errors(), c'est
bon à savoir même si dans mon cas je n'ai pas vraiment besoin de
pouvoir stocker les erreurs.
Publicité
Poster une réponse
Anonyme