Как определить тип MIME текстовых файлов: CSS, Javascript, ini, sql?
обнаружение типа MIME файла с PHP тривиально - просто используйте PEAR's MIME_Type пакет, PHP FileInfo на или позвоните file -i
на машине Unix.
Это очень хорошо работает для двоичных файлов и всех других, которые имеют какие-то "волшебные байты", через которые их можно легко обнаружить.
то, что я не в состоянии обнаружить правильный тип MIME текстовых файлов:
- в CSS
- Diff
- INI (конфигурация)
- в JavaScript
- первый
- среда SQL
все они идентифицируются как" text/plain", что правильно, но слишком неопределенно для меня. Мне нужен реальный тип, даже если он стоит некоторое время для анализа содержимого файла.
Итак, мой вопрос:какие решения существуют для обнаружения типа MIME таких текстовых файлов? Каких-Либо Библиотек? Фрагменты кода?
обратите внимание, что у меня нет ни имени, ни файл расширение, но у меня есть содержимое файла.
Если бы я использовал ruby, я мог бы интегрировать гитхаб это лингвист. Ohloh это ohcount написан на C, но имеет инструмент командной строки для определения типа: ohcount -d $file
что я пробовал
ohcount
обнаруживает xml и php файлы правильно, все остальные нет.
Apache tika
обнаруживает xml и html, все остальные файлы тестов рассматривались только как text/plain
.
4 ответов
как :
- .ini чтобы проверить ini-файлы, вы будете использовать parse_ini_file
Так как я не нашел подходящую библиотеку, я написал свой собственный магия файл, который правильно обнаруживает все мои тестовые файлы.
мое приложение сначала пробует мой пользовательский магический файл для обнаружения и возвращается к обычному/системному магическому файлу, если тип не обнаружен.
код его на github, см. https://github.com/cweiske/MIME_Type_PlainDetect .
Волшебный файл находится в данных/программирования.магия!--9--> и может использоваться с file -f programming.magic /path/to/source
Я нашел эту библиотеку:http://pear.php.net/package/MIME_Type/
в соответствии с его описанием он " предоставляет функциональность для работы с типами MIME."и дает следующие особенности:
- синтаксический анализ типа MIME.
- поддерживает полную спецификацию RFC2045.
- многие функции утилиты для работы с и определения информации о типах.
- большинство функций можно вызвать статически.
- автоопределение a MIME-тип файла, либо с расширением fileinfo, расширением mime_magic, командой "file" или встроенным списком отображения