2008-08-26 2 views
9

Ich bin auf der Suche nach guten Methoden zur Manipulation von HTML in PHP. Zum Beispiel beschäftigt sich das Problem, das ich derzeit habe, mit falsch formatiertem HTML.DOM Manipulation in PHP

I-Eingang bin immer so etwas wie folgt aussieht:

<div>This is some <b>text 

Wie Sie bemerkt haben, die HTML-End-Tags fehlt. Ich könnte Regex oder einen XML-Parser verwenden, um dieses Problem zu lösen. Es ist jedoch wahrscheinlich, dass ich in Zukunft andere DOM-Manipulationen durchführen muss. Ich frage mich, ob es gute PHP-Bibliotheken gibt, die DOM-Manipulation handhaben, ähnlich wie Javascript mit DOM-Manipulation umgeht.

+0

ich ungültige HTML durch HTML Purifier laufen würde, bevor irgendetwas anderes damit zu tun. – TRiG

Antwort

1

Für die Manipulation des DOM ich denke, dass was Sie suchen, ist this. Ich habe HTML-Dokumente aus dem Internet analysiert und es hat gut für mich funktioniert.

3

Die DOM-Bibliothek, die jetzt eingebaut ist dieses Problem leicht lösen kann. Die loadHTML-Methode akzeptiert fehlerhafte XML, die Load-Methode hingegen nicht.

$d = new DOMDocument; 
$d->loadHTML('<div>This is some <b>text'); 
$d->saveHTML(); 

wird der Ausgang sein:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html> 
    <body> 
    <div>This is some <b>text</b></div> 
    </body> 
</html> 
+0

Ich gab eine ähnliche Antwort mit ein bisschen mehr auf String-Codierung und wie man ein Dokumentfragment [hier] (http://stackoverflow.com/questions/8500390/fixing-unclosed-html-tags/43212965#43212965) –