2009-11-04 4 views
13

J'ai un paramètre XML que j'essaie de charger en utilisant simplexml. Le paramètre XML peut être modifié par l'utilisateur d'une application Web. Je veux gérer les erreurs moi-même et envoyer un message d'avertissement à l'interface utilisateur. Cependant, simplexml continue de lancer des avertissements sur du XML malformé au lieu de retourner tranquillement false.Comment fermer SimpleXML sur des données malformées?

Comment puis-je faire simpleXML taire et ne pas jeter un avertissement? Y a-t-il une option pour cela?

Répondre

4

Mettez un @ devant la fonction qui est de lancer l'avertissement, ce supprimera tous les messages d'avertissement.

+2

Vous ne devriez jamais, jamais utiliser la suppression des erreurs. Je n'ai pas encore trouvé de cas en PHP où, par un test approprié (par exemple, selon la réponse acceptée), vous pouvez tester l'échec avant d'exécuter la fonction. suppression d'erreur viendra souvent en arrière et vous mordre, parce que vous ne pouvez jamais remonter l'erreur d'origine (parce que vous supprima). Il est préférable de gérer le cas d'échec plutôt que de masquer le problème. Un exemple courant consiste à utiliser 'file_exists' /' is_readable' avant d'ouvrir les fichiers. Enfin, la suppression des erreurs a un léger impact sur les performances (mais c'est juste un * petit * bonus). – catchdave

+0

Quel est le but de la suppression des erreurs (@) alors ??? –