Foros del Web » Programando para Internet » PHP »

como extraer el primer tag IMG de un string

Estas en el tema de como extraer el primer tag IMG de un string en el foro de PHP en Foros del Web. Hola foreros. Como puedo extraer la priimer etigueta IMG de un string que estoy trayendo de una base de datos p.e. si tuviera '<p>Lorem ipsum ...
  #1 (permalink)  
Antiguo 12/07/2010, 14:22
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 1 mes
Puntos: 5
como extraer el primer tag IMG de un string

Hola foreros. Como puedo extraer la priimer etigueta IMG de un string que estoy trayendo de una base de datos

p.e. si tuviera
'<p>Lorem ipsum sen teade in finitu on desc <img src="imagefile_1.jpg" width="20" height="10" /> at tinoco subi tae in deemi ort entaecasi lobeli. Cue in <i>vocco asi demuenia </i> fo thain ej devor as usanti <img src="imagefile_2.gif width="20" height="10" /> escu, las derjoin in data espicmeo les dedi catun deli ipor.</p>'

quiero traer en una variable:str la primer etiqueta img del string original
$myImg = '<img src="imagefile_1.jpg" />'
para despues eliminar todos los tags excepto <p>
$mystr = '<p>Lorem ipsum sen teade in finitu on desc at tinoco subi tae in deemi ort entaecasi lobeli. Cue in vocco asi demuenia fo thain ej devor as usanti escu, las derjoin in data espicmeo les dedi catun deli ipor.</p>'
  #2 (permalink)  
Antiguo 12/07/2010, 14:42
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 14 años, 5 meses
Puntos: 15
Respuesta: como extraer el primer tag IMG de un string

Hola, revisa el apartado de expresiones regulares en el manual, especialmente preg_match().
  #3 (permalink)  
Antiguo 12/07/2010, 15:07
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: como extraer el primer tag IMG de un string

Autenticamente neofito! bueno, haciendo unas pruebas y buscando ejemplos llegue a esto, pero aun desconozco algunos conceptos acerca del uso de los patrones
Código PHP:
$mystr "<p>Lorem ipsum sen teade in finitu on desc <img src='imagefile_1.jpg' width='20' height='20' /> at tinoco subi tae in deemi ort entaecasi lobeli. Cue in <i>vocco asi demuenia </i> fo thain ej devor as usanti <img src='imagefile_2.gif'> escu, las derjoin in data espicmeo les dedi catun deli ipor.</p>";
function 
imgTag($cStr) {
// "/<img[^>]*>/Ui"
// donde....
// []    Inicio y fin de grupo o clase de caracteres
// ^    Inicio del contexto y termina en >, cierre de etiqueta
// *>    NO SE QUE SIGNIFICA !!!   ;(
preg_match_all("/<img[^>]*>/Ui"$cStr$mPREG_PATTERN_ORDER);
    if(!empty(
$m[0])):
    echo 
"preg_match_all -> ".count($m);
    else:
    echo 
"no hay coincidencias";
    
$m[0] = "<img src='default.jpg'>";
    endif;

    return 
$m[0];
}
$arr=imgTag($mystr);

echo 
'<pre>';
print_r($arr);
echo 
'</pre>';
echo 
"<br />Encontre la primer IMG tag -&gt; <pre>".$arr[0]."</pre>"

Última edición por worldPeace_Plis; 13/07/2010 a las 09:49
  #4 (permalink)  
Antiguo 13/07/2010, 10:03
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: como extraer el primer tag IMG de un string

por cierto
http://w-shadow.com/blog/2009/10/20/...utes-with-php/
este es un poema de codigo XD
  #5 (permalink)  
Antiguo 13/07/2010, 10:33
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: como extraer el primer tag IMG de un string

Prueba con esto:


Código PHP:
Ver original
  1. $str='<p>Lorem ipsum sen teade in finitu on desc <img src="imagefile_1.jpg" width="20" height="10" /> at tinoco subi tae in deemi ort entaecasi lobeli. Cue in <i>vocco asi demuenia </i> fo thain ej devor as usanti <img src="imagefile_2.gif width="20" height="10" /> escu, las derjoin in data espicmeo les dedi catun deli ipor.</p>';
  2.  
  3. preg_match('/<img[^\>]*>/i',$str,$match);//ahora $match[0] contiene la primer etiqueta IMG
  4.  
  5. $str=strip_tags($str,'<p>');//quitas todas las etiquetas excepto <p>

Etiquetas: extraer, img, primer, string, tag
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:18.