Foros del Web » Programando para Internet » PHP »

Buscar la etiqueta <img .....> en un texto

Estas en el tema de Buscar la etiqueta <img .....> en un texto en el foro de PHP en Foros del Web. Hola a todos. Tengo un texto en un campo en mysql que lleva dentro HTML y quisiera sacar en una variable una imagen que esta ...
  #1 (permalink)  
Antiguo 12/01/2009, 16:38
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Buscar la etiqueta <img .....> en un texto

Hola a todos.

Tengo un texto en un campo en mysql que lleva dentro HTML y quisiera sacar en una variable una imagen que esta ahi con codigo HTML con las etiquetas <img src="......">

Como lo puedo lograr?

Saludos!
  #2 (permalink)  
Antiguo 12/01/2009, 19:55
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Buscar la etiqueta <img .....> en un texto

primero lees todo el contenido del archivo html
usando las funciones de archivo

fopen, fread, filesize, etc

despues buscas la primera aparicion de <img usando strpos() la cual devuelve la posicion de la primera aparicion, entonces lo que haces despues es seleccionar todo el texto desde ese punto hasta el final usando substr()

una vez que tenes todo ese texto seleciconado en una variable lo que haces es hacer otro strpos() pero esta vez buscando "/>" el final de la etiqueta

ahora, una vez que hiciste eso entonces teniendo el inicio y el final de la etiqueta lo que haces es recortarla completa desde el texto original (lectura original)

haciendo por ejemplo substr($texto, $primer_strpos, ($primer_strpos+$segundo_strpos));

y listo, ahi tendrias una cadena con tu etiqueta

FIN :P jaja


saludos!
  #3 (permalink)  
Antiguo 12/01/2009, 20:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Buscar la etiqueta <img .....> en un texto

Lo mejor para este caso en lugar de buscar, es más optimo y rápido usar expresiones regulares.

Saludos
  #4 (permalink)  
Antiguo 12/01/2009, 22:51
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Buscar la etiqueta <img .....> en un texto

otra opcion!.... gracias gator
  #5 (permalink)  
Antiguo 15/01/2009, 08:21
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Buscar la etiqueta <img .....> en un texto

Gracias korg1988 y GatorV.
Korg no es un archivo es una consulta a una tabla y el campo viene con ese texto y de ahi quiero sacar el codigo de la imagen.

GatorV, si con expresiones regulares lo puedo hacer, pero no tengo idea de como, uso muy poco este tipo de expresiones

Muchas Gracias....

Mauricio
  #6 (permalink)  
Antiguo 15/01/2009, 08:47
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Buscar la etiqueta <img .....> en un texto

En este caso son patrones simples, debería funcionarte algo así:

Código PHP:
<img.*?src="(.*?)\".*?> 
No sabes como usarlo? Hay un aporte que dice como: http://www.forosdelweb.com/f18/aport...s-pcre-646110/

Nota: el patern ese te dará el src de la imagen, ahí podés crear un nuevo elemento o usarlo como mejor te quede, pudiendo tomar con nuevos () otros atributos del tag.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 15/01/2009, 08:50
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Buscar la etiqueta <img .....> en un texto

Gracias nicolaspar
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 13:41.