Andreas Korthaus: HTML-Tags gruppieren und zählen

Beitrag lesen

Hallo!

ich würde gerne in einem String das vorkommen von bestimmten HTML Tags zählen. Zuvor sollen die Tags aber gruppiert werden, so das ich am Ende eine Liste erhalte mit etwas wie:

5 img-tags
7 a-Tags
14 span-tags
usw.

wenn Du PHP5 zur Verfügung hast, würde ich es mit der DOM extension versuchen:

  
<?php  
$tags = array('img', 'a', 'span');  
$dom = new DOMDocument();  
$dom->loadHTML($html);  
  
foreach ($tags as $tag) {  
  $list = $dom->getElementsByTagName($tag);  
  echo $tag . ": " . $list->length . "\n";  
}  
?>

kannst damit auch solche Sachen machen:

  
<?php  
$dom = new DOMDocument();  
$dom->loadHTML($html);  
  
$list = $dom->getElementsByTagName('p');  
foreach ($list as $item) {  
  echo $item->nodeValue . "\n";  
}  
?>

Das gibt eine Liste mit sämtlichen Texten in <p></p> aus.

Allerdings weiß ich nicht wie sich das verhält wenn Du kaputtes/invalides HTML verwendest.

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/