Получить MIME-тип локального файла в PHP5 без расширения PECL?

StackOverflow https://stackoverflow.com/questions/51110

  •  09-06-2019
  •  | 
  •  

Вопрос

mime_content_type() не рекомендуется.

Как я могу найти MIME type локального файла, используя PHP5 но без использования этого устаревшего метода или PECL fileinfo расширение?

Редактировать:Вот чего я боялся.К сожалению, они отказались от встроенной функции в пользу той, которая требует расширения, которое не всегда доступно.

Это было полезно?

Решение

Если вы не можете использовать расширение fileinfo и не хотите использовать mime_content_type, ваши возможности ограничены.

Скорее всего, вам придется выполнить поиск по расширению файла.mime_content_type сделал что-то более умное и фактически искал в файле специальные данные, чтобы определить тип mime.

Другие советы

А получитьID3() Библиотека — это быстрый и простой вариант, который работает большую часть времени.Первоначально названная в честь проекта по получению данных MP3 ID3, библиотека делает намного больше и весьма удобна для всех видов обычных или нестандартных задач с метаданными файлов.

Я использовал его для получения файлов типов MIME для онлайн-инструментов обработки изображений и видео.За все проведенные мной тесты я не видел, чтобы getID3 неправильно определил тип MIME.

Я также использовал его, чтобы проверить, есть ли в видео QuickTime подсказки по потоковой передаче.Я упоминаю об этом как о примере универсальности.

Второй, более трудоемкий вариант — запустить собственную программу проверки типов MIME, как уже предлагалось.Если у вас есть волшебный файл MIME, вы можете пойти немного дальше, чем просто поиск по расширению файла, сравнив первые n байтов данных файла с таблицей поиска первых n байтов по типу MIME, полученной из вашего волшебного файла MIME.

Типичный магический файл MIME будет содержать более 500 наборов типов MIME, что может привести к медленному сравнению (нужно выполнить множество проверок).В этом поможет жесткое кодирование 10 наиболее распространенных проверок типов MIME в вашем домашнем комплексном решении.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top