Ver Mensaje Individual
  #29 (permalink)  
Antiguo 21/01/2010, 14:11
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)

Yuhuu!

Primera parte completada con éxito

Código PHP:
Ver original
  1. <?
  2. /*
  3. Objetivo: Extraer todos los atributos HTML, y propiedades CSS (id y class)
  4. Para compararlos con una hoja de estilo y eliminar las propiedades que no se usen.
  5.  
  6. Archivo web.htm >> extraemos los atributos HTML, ID y CLASS
  7. Archivo style.css >> comparamos los atributos extraidos en el archivo web.htm
  8.                       y nos quedamos con la parte útil del fichero style.css
  9. */
  10.  
  11. // -------- PROGRAMA -----------------
  12. $file_html='web.htm';
  13. $file_css='style.css';
  14.  
  15. $html = file_get_contents($file_html);
  16. $css = file_get_contents($file_css);
  17.  
  18. preg_match_all('/<(\w+)[^>]*class=[\'|"](\w+)[\'|"][^>]*>/is',$html,$matches_class);
  19. preg_match_all('/<(\w+)[^>]*id=[\'|"](\w+)[\'|"][^>]*>/is',$html,$matches_id);
  20.  
  21. $tags_html = array_merge($matches_class[1], $matches_id[1]); // Junto los dos arrays en uno
  22. $del_dup_html=array_unique($tags_html); // HTML
  23. $del_dup_class=array_unique($matches_class[2]); // CLASS
  24. $del_dup_id=array_unique($matches_id[2]); // ID
  25.  
  26. echo "<pre>";
  27. print_r($del_dup_html);
  28. echo "</pre>";
  29.  
  30. echo "<pre>";
  31. print_r($del_dup_class);
  32. echo "</pre>";
  33.  
  34. echo "<pre>";
  35. print_r($del_dup_id);
  36. echo "</pre>";
  37.  
  38. ?>

Si veis algún fallo por favor comunicádmelo, muchas gracias a todos

Mención especial a pateketrueke por estar al pie del cañón, gracias por tus consejos.

Ahora queda la segunda parte
Hacer matching con la hoja de estilo y descartar los estilos que no estén en nuestra web.