Extraer la primera imagen de una cadena
Hola aquí les traigo una función php que encontre en internet y me sirvió de mucho para extraer el “SRC” de la primera imagen que aparece de una determinada cadena, haciendo uso de expresiones regulares con “preg_match_all”:
function primera_imagen($texto) { $foto = ''; ob_start(); ob_end_clean(); preg_match_all("/<img[\s]+[^>]*?src[\s]?=[\s\"\']+(.*\.([gif|jpg|png|jpeg]{3,4}))[\"\']+.*?>/", $texto, $array); $foto = $array [1][0]; if(empty($foto)){ $foto = ''; } return $foto; }Un ejemplo de uso:
$cadena = '<p>Santa Bárbara bendita, trailaralará, trailará, Santa Bárbara bendita, trailaralará, trailará, patrona de los mineros, mira,mira, Maruxina, mira, mira cómo vengo yo. <img src="fotos/foto1.jpg"> Patrona de los mineros, mira,mira, Maruxina, mira, mira cómo vengo yo…</p> <p>Traigo la cabeza rota, trailaralará, trailará traigo la cabeza rota, trailaralará, trailará que me la rompió un costero mira,mira, Maruxina, mira,mira cómo vengo yo, que me la rompió un costero mira,mira, Maruxina, mira,mira cómo vengo yo… <img src="fotos/foto2.jpg"></p>'; echo primera_imagen($cadena); // Imprime: fotos/foto1.jpg
5
Puntos
Puntos
1570
Visitas
Visitas
1
Resp
Resp
Por Codewar hace 122 meses
Principiante
Respuesta #1
buen aporte, vamos a dejar por aquí como eliminar todas las imágenes de una cadena por si a alguien le sirve de ayuda
<?php $content = "Imagen 1 <img src=\"test.png\"/> Imagen 2 <img src=\"test2.png\"/>"; $content = preg_replace("/<img[^>]+\>/i", "", $content); echo $content; ?>
0
Puntos
Puntos
Por alber hace 122 meses
Administrador