Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

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
1570
Visitas
1
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
Por alber hace 122 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate