Intereting Posts

Получить расширение изображения

Я хочу получить загруженное расширение изображения.

Как я знаю, лучшим способом является getimagesize() .

но это функция mime, возвращает image/jpeg когда изображение имеет .jpg или также расширение .JPEG .

Как получить точное расширение?

вы можете использовать функцию image_type_to_extension с типом изображения, возвращаемым getimagesize :

 $info = getimagesize($path); $extension = image_type_to_extension($info[2]); 
 $ext = pathinfo($filename, PATHINFO_EXTENSION); 

Вы также можете использовать функции strrpos и substr, чтобы получить расширение любого файла

 $filePath="images/ajax-loader.gif"; $type=substr($filePath,strrpos($filePath,'.')+1); echo "file type=".$type; 

выход: gif

если вы хотите расширение, например .gif

 $type=substr($filePath,strrpos($filePath,'.')+0); 

output: .gif

 $image = explode(".","test.file.hhh.kkk.jpg"); echo end($image); 

Еще один способ сделать это:

 $ext = strrchr($filename, "."); // .jpg 

Вы также можете взорвать имя файла с точками и взять конец массива следующим образом:

 $ext = end(explode('.', 'image.name.gif')); 

Согласно: Два разных способа найти расширение файла в PHP

И новый способ для вас LOL:

 $ext = explode('.', 'file.name.lol.lolz.jpg'); echo $ext[count($ext) - 1]; 

Для тех, кто хочет проверить, есть ли тип изображения JPEG, PNG или т. Д. Вы можете использовать функцию exif_imagetype . Эта функция считывает первые байты изображения и проверяет его подпись. Вот простой пример из php.net:

 <?php if (exif_imagetype('image.gif') != IMAGETYPE_GIF) { echo 'The picture is not a gif'; } ?> 
 $size = getimagesize($filename); $ext = explode('/', $size['mime'])[1];