DANFA

PHP: Как получить расширение файла по его номеру

PHP
В PHP номер формата изображения (константы типа IMAGETYPE_*) можно преобразовать в соответствующее расширение файла с помощью массива, связывающего номера с расширениями. Приведу простой и удобный способ, как это сделать.

Пример:
// Массив, связывающий номера форматов с соответствующими расширениями
$extensions = [
    IMAGETYPE_GIF   => 'gif',
    IMAGETYPE_JPEG  => 'jpg',
    IMAGETYPE_PNG   => 'png',
    IMAGETYPE_SWF   => 'swf',
    IMAGETYPE_PSD   => 'psd',
    IMAGETYPE_BMP   => 'bmp',
    IMAGETYPE_TIFF_II => 'tif',
    IMAGETYPE_TIFF_MM => 'tif',
    IMAGETYPE_JPC   => 'jpc',
    IMAGETYPE_JP2   => 'jp2',
    IMAGETYPE_JPX   => 'jpx',
    IMAGETYPE_JB2   => 'jb2',
    IMAGETYPE_SWC   => 'swc',
    IMAGETYPE_IFF   => 'iff',
    IMAGETYPE_WBMP  => 'wbmp',
    IMAGETYPE_XBM   => 'xbm',
    IMAGETYPE_ICO   => 'ico',
    IMAGETYPE_WEBP  => 'webp'
];

// Пример использования
$imageInfo = getimagesize('image.png');
$extension = $extensions[$imageInfo[2]] ?? 'unknown'; // Если тип не найден, выставляем unknown

echo "Расширение файла: $extension";

Что происходит:
  • В массиве $extensions мы связываем числовой идентификатор формата (например, IMAGETYPE_PNG) с соответствующим расширением файла (например, png).
  • Используем функцию getimagesize(), которая возвращает массив, содержащий информацию о размере и формате изображения. Второй элемент этого массива ($imageInfo[2]) — это числовой идентификатор формата.
  • Обращаемся к нашему массиву по этому идентификатору и получаем нужное расширение.

Таким образом, вы можете легко получить расширение файла по его числу, используя вышеуказанный подход.

Автор:  Вчера, 6:14 pm