Tags: Ausbildung, Internet, php, Webentwicklung
Was passiert wenn man mit SimpleXML eine XML-Datei öffnet, die ungültiges XML enthält?
Sie gibt eine Exception aus!
Diese Exception kann man aber nicht richtig fangen.
Siehe PHP-Bug #39157.
$file = "beispiel.xml";
try {
$xml = new SimpleXMLElement(XMLPATH . $file, null, true);
} catch (Exception $e) {
echo $file . " : Ungueltiges XML\n";
continue;
}
Würde hier eine Datei mit ungültigem XML geöffnet werden, so wird eine Exception geworfen, direkt ausgegeben und der catch-Block wird auch noch ausgeführt.
Was nun machen wenn man keine Exception ausgegeben haben möchte?
Ein @ vor die Zuweisung stellen, um die Fehlerausgabe zu unterdrücken!
$file = "beispiel.xml";
try {
@$xml = new SimpleXMLElement(XMLPATH . $file, null, true);
} catch (Exception $e) {
echo $file . " : Ungueltiges XML\n";
continue;
}
Und schon wird die Exception gefangen und NURNOCH der catch-Block ausgeführt – ohne vorheriges ausgeben der eigentlichen Exception.
Auch interessant:

0