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);