Extraer la primera imagen de un texto con PHP

[…]


por

En varias ocasiones, en desarrollos a medida en PHP, me he visto en la necesidad de extraer una foto de un campo de texto (por ejemplo, de un campo que se rellena con un editor visual y contiene formato e imágenes) para, por ejemplo, aprovecharla como imagen destacada y no tener que crear un campo adicional para ello.

Para ello encontré una función muy sencilla y muy útil que os dejo a continuación.

function extraerImagen($texto) { 
 $foto = ''; 
 preg_match("/<img[\s]+[^>]*?src[\s]?=[\s\"\']+(.*\.([gif|jpg|png|jpeg]{3,4}))[\"\']+.*?>/", $texto, $array); 
 $foto = $array [1][0]; 
 if(empty($foto)){ 
 $foto = ''; 
 } 
 return "<img src=$foto>"; 
}

Una vez declarada la función, sólo tendrémos que llamarla para mostrar la imagen allí donde queramos:

echo extraerImagen($cadena);