Dies ist ein Beispiel PHP-Code, der das Dom erstellt und speichert den HTML-Code.Wie erkennt man, wenn savehtml fehlschlägt?
$doc = new DOMDocument('1.0');
$root = $doc->createElement('html');
$root = $doc->appendChild($root);
$head = $doc->createElement('head');
$head = $root->appendChild($head);
$title = $doc->createElement('title');
$title = $head->appendChild($title);
$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);
echo $doc->saveHTML();
Wie, können wir fangen, wenn das Speichern oder saveHTML() fehlschlägt?
Ich schätze jede Hilfe.
UPDATE:
Ich mag den Fang die Fehler in dem folgenden Code. Ich habe absichtlich eine zufällige Zeichenfolge konstruiert. Ich möchte diese Zeichenfolge in ein dom-Dokument laden und den Fehler abfangen.
<?php
$str = "uyiuyiuhkjh<><><.,><.<.";
$dom = new DOMDocument;
$dom->loadHTML($str);
$saved = $dom->saveHTML();
//This doesnt work.
if ($saved === false){
echo 'Unable to save DOM document';
}
else{
echo $saved;
}
?>
UPDATE 2:
Der folgende Code wird fehlschlagen. d. h. es erkennt das nav-Tag beim Parsen nicht. Es gibt ein Fehler Tag nav in Entity ungültig.
<?php
$str = "<html> <head> </head> <body> <nav> </nav> </body> </html>";
$dom = new DOMDocument;
$dom->loadHTML($str);
$saved = $dom->saveHTML();
if ($saved === false){
echo 'Unable to save DOM document';
}
else{
echo $saved;
}
?>
Nun, um den Fehler zu unterdrücken kann ich libxml_use_internal_errors verwenden (true); aber jetzt verschwindet die Fehlermeldung, aber $ dom-> saveHTML() gibt immer noch nicht false oder leer zurück, so dass es schwer ist zu wissen, wann saveHTML oder loadHTML einen Fehler hatte. Bitte helfen Sie !!
'$ foo = $ doc-> saveHTML(); if (leer ($ foo)) {sterben ("Ruhroh"); } ' –
Entschuldigung ich habe das versucht und es hat nicht funktioniert. Ich bekomme nur Warnungen. – kofhearts