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
1568
Visitas
1
Resp
Por codewar hace 12 años
Novice
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 12 años
Admin
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar