No estoy seguro de si se puede hacer desde la variable imagen $, pero para obtener el tipo MIME, normalmente se puede utilizar cualquiera de los cuatro:
// with GD
$img = getimagesize($path);
return $img['mime'];
// with FileInfo
$fi = new finfo(FILEINFO_MIME);
return $fi->file($path);
// with Exif (returns image constant value)
return exif_imagetype($path)
// deprecated
return mime_content_type($path);
Desde su descripción pregunta tomo desea utilizar un archivo remoto, por lo que podría hacer algo como esto para hacer este trabajo:
$tmpfname = tempnam("/tmp", "IMG_"); // use any path writable for you
$imageCopy = file_get_contents('http://www.example.com/image.png');
file_put_contents($tmpfname, $imageCopy);
$mimetype = // call any of the above functions on $tmpfname;
unlink($tmpfname);
Nota: Si la función de los MimeType que va a utilizar es compatible con archivos remotos, utilizarlo directamente, en lugar de crear una copia del archivo primero
Si necesita el MimeType solo para determinar qué función de imagecreatefrom
utilizar, ¿por qué no cargar primero el archivo como una cadena y luego dejar que GD decida, p.
// returns GD image resource of false
$imageString = file_get_contents('http://www.example.com/image.png');
if($imageString !== FALSE) {
$image = imagecreatefromstring($imageString);
}
La cosa es que, con solo un identificador de recurso de imagen disponible para su código, no debería importar lo que el archivo original era para este objeto. ¿Por qué necesitas saberlo? – dqhendricks