Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/01/2010, 16:03
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Encontrar etiquetas html, class y id's (con expresiones regulares)

No consigo sacar la expresion regular para sacar el nombre de todos los tags html que encuentre

Código PHP:
Ver original
  1. $html='<html><body><a class="footer" href="#">Área privada.</a><span class="hola" asfda sfasdf ><a class="aas" href="#"><span>Área privada.</span></a></span></body></html>
  2. ';
  3.  
  4. preg_match_all('/<(.*?)[^\/]\>/is',$html,$matches);
  5. echo "<pre>";
  6. print_r($matches);
  7. echo "</pre>";

Supuestamente estoy buscando todo lo que empieze por <
seguido de cualquier cosa (.*?)
que no tenga una barra /
acabe en >

Esta es la salida del codigo fuente que produce

Código:
<pre>Array
(
    [0] => Array
        (
            [0] => <html>
            [1] => <body>
            [2] => <a class="footer" href="#">
            [3] => </a>
            [4] => <span class="hola" asfda sfasdf >
            [5] => <a class="aas" href="#">

            [6] => <span>
            [7] => </span>
            [8] => </a>
            [9] => </span>
            [10] => </body>
            [11] => </html>

        )

    [1] => Array
        (
            [0] => htm
            [1] => bod
            [2] => a class="footer" href="#
            [3] => /
            [4] => span class="hola" asfda sfasdf
            [5] => a class="aas" href="#
            [6] => spa
            [7] => /spa
            [8] => /
            [9] => /spa
            [10] => /bod
            [11] => /htm
        )

)
</pre>
Debería salir que hay estas cuatro etiquetas:
html
body
a
span

Sabéis que hago mal de la expresión regular?

Muchas gracias de antemano