Вы можете загрузить изображение и использовать exif_imagetype , чтобы определить тип изображения, или вы можете прочитать тип изображения в заголовке ответа удаленного хоста (хоста, с которого вы получаете изображение). В заголовке есть атрибут Content-Type , и вы можете получить тип изображения там.
Пример для exif_imagetype :
<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
echo 'The picture is not a gif';
}
?>
Вот пример ответа заголовка для файла png.
HTTP/1.1 200 OK
Date: Wed, 15 May 2019 02:42:16 GMT
Server: Apache/2.4.39 (Ubuntu)
Last-Modified: Fri, 22 Mar 2019 17:34:11 GMT
ETag: "19f85-584b2434b434b"
Accept-Ranges: bytes
Content-Length: 106373
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: image/png <---------------