Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/02/2010, 06:54
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Error al encontrar etiquetas class o id si contienen espacios

Buenas,

Tengo un problema las siguientes expresiones regulares me encuentran todos los tags class e id que hay en el documento:


Código PHP:
Ver original
  1. function Extrae_valores_CLASS($html){
  2.     preg_match_all('/<(\w+)[^>]*class=[\'|"]([-_a-zA-Z0-9]+)[\'|"][^>]*>/is',$html,$matches_class);
  3.     $tags_class=array_unique($matches_class[2]); // CLASS
  4.     return $tags_class;
  5. }
  6.  
  7. function Extrae_valores_ID($html){
  8.     preg_match_all('/<(\w+)[^>]*id=[\'|"]([-_a-zA-Z0-9]+)[\'|"][^>]*>/is',$html,$matches_id);
  9.     $tags_id=array_unique($matches_id[2]); // ID
  10.     return $tags_id;


El problema viene cuando estos class o id contienen algún espacio. Ejemplo:

Código HTML:
Ver original
  1. <div id="popupLogin" class="popup-content cm-popup-box cm-picker"> 
  2. <!--<div style="display: none; z-index: 27; visibility: visible; width: 914px; left: 41.5px; top: 45px;" class="popup-content cm-popup-box cm-picker hidden" id="picker_om_470191798">-->
  3.     <div class="cm-popup-content-header">
  4.         <div class="float-right">
  5.             <img src="icon_close.gif" alt="Cerrar" title="Cerrar" class="hand cm-popup-switch" border="0" height="13" width="13">
  6.         </div>
  7.         <h3>Añadir articulo:</h3>
  8.     </div>
  9.     <div class="cm-popup-content-footer">
  10.         <div class="cm-picker-data-container" id="iframe_container_om_470191798">


Las que están formadas así no las encuentra
class="popup-content cm-popup-box cm-picker"

No he conseguido incluirlas en la expresión regular, me podéis ayudar?

Muchas gracias de antemano!