Foros del Web » Programando para Internet » PHP »

Error al encontrar etiquetas class o id si contienen espacios

Estas en el tema de Error al encontrar etiquetas class o id si contienen espacios en el foro de PHP en Foros del Web. Buenas, Tengo un problema las siguientes expresiones regulares me encuentran todos los tags class e id que hay en el documento: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 28/02/2010, 06:54
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años
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!
  #2 (permalink)  
Antiguo 28/02/2010, 08:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Error al encontrar etiquetas class o id si contienen espacios

pues agrega el espacio como carácter a tu conjunto... ;)

Cita:
[-_a-zA-Z0-9\s]+
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/02/2010, 08:46
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años
Puntos: 20
Respuesta: Error al encontrar etiquetas class o id si contienen espacios

Cita:
Iniciado por pateketrueke Ver Mensaje
pues agrega el espacio como carácter a tu conjunto... ;)
Tienes razón, no se porque cuando lo probaba en una web online no me fije bien que me capturaba bien, me estaba fijando en lo que me marcaba (practicamente todo) y no en lo que capturaba (los parentesis).

Vaya novatada, gracias pateketrueke!

Etiquetas: class, encontrar, espacios, etiquetas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:24.