Cuente todas las tags HTML en la página PHP

Pasé un tiempo en Regex para resolver este problema, pero no tuve el resultado. Intento resolver este problema utilizando PHP 5.3. Información como – Cuántas veces se repite en la página e información sobre todas las tags en la página.

Por desgracia, su pregunta es apenas comprensible en su forma actual. Intenta actualizarlo y ser más específico. Si desea contar todas las tags HTML en una página , puede hacer lo siguiente:

$HTML = <<< HTML   Some Text   

Hello World
picture of earth from space

Counting Elements is easy with DOM

HTML;

Contando todos los DOMElements con DOM:

 $dom = new DOMDocument; $dom->loadHTML($HTML); $allElements = $dom->getElementsByTagName('*'); echo $allElements->length; 

Lo anterior dará salida a 8 , porque hay ocho elementos en el DOM. Si también necesita saber la distribución de los elementos , puede hacer

 $elementDistribution = array(); foreach($allElements as $element) { if(array_key_exists($element->tagName, $elementDistribution)) { $elementDistribution[$element->tagName] += 1; } else { $elementDistribution[$element->tagName] = 1; } } print_r($elementDistribution); 

Esto regresaría

 Array ( [html] => 1 [head] => 1 [title] => 1 [body] => 1 [p] => 2 [br] => 1 [img] => 1 ) 

Tenga en cuenta que getElementsByTagName devuelve DOMElements solamente. No tiene en cuenta el cierre de tags, ni devuelve otros DOMNOdes. Si también necesita contar las tags de cierre y otros tipos de nodos, considere usar XMLReader en su lugar.

 $testHTML = file_get_contents('index.html'); $search = preg_match_all('/<([^\/!][a-z1-9]*)/i',$testHTML,$matches); echo '
'; var_dump($matches[1]); echo '

';

Te da una matriz de todas las tags. Una vez que los datos están en la matriz, puede usar todas las funciones estándar de la matriz PHP, por ejemplo, array_count_values ​​(), para extraer los detalles que desee … aunque realmente no está diciendo qué información quiere sobre las tags html.

Usar array_count_values ​​() con los resultados de preg_match_all ():

 echo '
'; var_dump(array_count_values($matches[1])); echo '

';

da

 array(5) { ["html"]=> int(1) ["head"]=> int(1) ["title"]=> int(1) ["body"]=> int(1) ["h1"]=> int(2) } 

¿Es esto lo que quieres?

Te sugiero que hagas una compra simple html dom

http://simplehtmldom.sourceforge.net/manual.htm