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
1539
Visitas
1
Resp
Por codewar hace 11 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 11 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