2009-11-04 6 views
13

Ich habe eine XML-Einstellung Ich versuche, mit Simplexml laden. Die XML-Einstellung kann vom Benutzer einer Webanwendung bearbeitet werden. Ich möchte selbst Fehler behandeln und eine Warnmeldung an die Benutzeroberfläche senden. Simplexml wirft jedoch weiterhin Warnungen auf falsch formatiertes XML, anstatt in false zurückzukehren.Wie kann man simpleXML bei fehlerhaften Daten zum Schweigen bringen?

Wie kann ich simpleXML zum Schweigen bringen und keine Warnung ausgeben? Gibt es dafür eine Option?

Antwort

17

Verwenden Sie libxml_use_internal_errors(), um XML-Fehler zu unterdrücken.

Sie können dann verwenden, um Fehler zu überprüfen, wenn Sie müssen.

+0

Das hat es geschafft, danke! –

4

Setzen Sie ein @ vor die Funktion, die die Warnung auslöst, dies unterdrückt alle Warnmeldungen.

+2

Sie sollten niemals eine Fehlerunterdrückung verwenden. Ich habe noch keinen Fall in PHP gefunden, bei dem durch geeignete Tests (z. B. gemäß der akzeptierten Antwort) vor dem Ausführen der Funktion auf Fehler getestet werden kann. Fehlerunterdrückung kommt oft zurück und beißt dich, weil du nie den ursprünglichen Fehler zurückverfolgen kannst (weil du ihn unterdrückt hast). Es empfiehlt sich, den Fehlerfall zu behandeln, anstatt das Problem zu verbergen. Ein gängiges Beispiel ist die Verwendung von 'file_exists' /' is_readable', bevor Sie Dateien öffnen. Schließlich hat die Fehlerunterdrückung einen leichten Leistungseinbruch (aber das ist nur ein * kleiner * Bonus). – catchdave

+0

Was ist der Zweck der Fehler Unterdrückung (@) dann ??? –

Verwandte Themen