Bin neulich über eine nette Klasse gestolpert, die sich lohnt mal anzuschauen:
Diese parst HTML und hält es als DOM Baum vor, auf welchem man ‘JQuery like’ Operationen dürchführen kann.
Siehe deren online Beispiel:
// Create DOM from URL or file $html = file_get_html('http://www.google.com/'); // Find all images foreach($html->find('img') as $element) echo $element->src . '<br>'; // Find all links foreach($html->find('a') as $element) echo $element->href . '<br>';
Kann man schön mit ScreenScrapen oder mal ein CMS neu erfinden! ;)
Feine Sache!
Ich habe es benutzt um einen AutoLinker zu bauen der über HTML traversiert.
Mit Regulären Ausdrücken bin ich da gescheitert, da diese auch immer Begriffe die schon Links waren ersetzt haben.
Über den DOM Baum ging es ganz gut.
Traversieren geht beispielsweise damit dann so:
$dom = new simple_html_dom; $dom->load($html, true); $this->traverse($dom->root); function traverse($node,$deep=0) { if($node->tag !== 'root'){ $lead = str_repeat('#', $deep); echo $node->tag.':<br>'; } $ee = $node->nodes; foreach($ee as $c){ $this->traverse($c,$deep+1); } }
cooles Teil!