Foros del Web » Programando para Internet » PHP »

Ayuda caso concreto de Expresiones regulares

Estas en el tema de Ayuda caso concreto de Expresiones regulares en el foro de PHP en Foros del Web. Tengo este código y tendria que extraer el origen de las imagenes mediante expresiones regulares. Perdonad mi ignorancia, me resulta complicado esto de las expressiones ...
  #1 (permalink)  
Antiguo 07/09/2004, 19:36
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 13 años, 11 meses
Puntos: 0
Ayuda caso concreto de Expresiones regulares

Tengo este código y tendria que extraer el origen de las imagenes mediante expresiones regulares. Perdonad mi ignorancia, me resulta complicado esto de las expressiones regulares.

Me podrias explicar cómo funciona la solución.

Gracias.

Código HTML:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2" class="titol18gris">Arròs a la cubana</td>
</tr>
<tr>
<td><img border="0" alt="" height="18" width="94" src="../img/i_ous.gif"></td>
</tr>
<tr>
<td><img height="3" width="1" src="../img/p.gif"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0"> 

Última edición por jmaribau; 07/09/2004 a las 19:38
  #2 (permalink)  
Antiguo 08/09/2004, 03:39
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
preg_match_all ('/<img[^>]+src="([^"]+)"/',$html,$imgs);
$arrayPaths=$imgs[1];

En el arrayPaths tendrías el src de todas las imagenes que supongo que es lo que buscas. La variable $html es la que contiene el código html que contiene las imagenes
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 08/09/2004, 04:08
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 13 años, 11 meses
Puntos: 0
Gracias, me ha ido a la perfección.

Me puedes indicar cómo funciona la expresión regular si no es mucha molestia.
Gracias.

Última edición por jmaribau; 08/09/2004 a las 04:16
  #4 (permalink)  
Antiguo 08/09/2004, 04:31
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
te lo divido por partes:

<img: aquí le decimos que la cadena ha de empezar por <img

[^>]+: esto representa cualquier caracter que se puede repetir una o más veces y que es distinto de >

src="([^"]+)": Aquí le estamos diciendo que tiene que encontrar la cadena src=, cuyo contenido esta delimitado por comillas. Concretamente [^"]+ le indica que ese contenido es cualquier caracter distinto de " y que se repite 1 o más veces (+). Lo metemos entre parentesis para poder extraerlo al array $imgs.

Espero haberme explicado bien
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 08/09/2004, 04:46
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 13 años, 11 meses
Puntos: 0
Te has explicado perfectamente, gracias. Ahora almenos si me tropiezo con algo parecido ja lo haré yo mismo.

Gracias

Unas preguntas:
pq ponen el tag img entero en $imgs[0] y el resultado bueno en $imgs[1]?
pq usais funciones preg_ y no ereg_?
  #6 (permalink)  
Antiguo 08/09/2004, 05:01
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
La explicación a eso la da la documentación de php.net:

Note: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().

$imgs[0] contiene la cadena que ha coincidido con el patrón de búsqueda que hemos puesto e $img[1] contiene lo que teniamos entre parentesis.
__________________
¿Te apasiona el mundo del guión? El portal del guión
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 16:04.