Как классифицировать типы Mime (PHP)
-
22-07-2019 - |
Вопрос
Я ищу фрагмент кода, который классифицирует типы mime.
Например,
приложение /msword
приложение/vnd.oasis.opendocument.text
приложение /pdf
Оба они являются офисными файлами.Когда я передаю эти mime-типы функции, я хочу, чтобы она возвращала результат, который является 'office', 'image', 'application', 'compressed' и т.д.
Однако, как вы знаете, существуют сотни типов mime, и я не могу собрать их все.
Вы знаете, где я могу это найти?
Решение
Я не знаю ни одного существующего скрипта, который классифицировал бы эти типы по вашему желанию.Возможно, вам потребуется создать эту функцию самостоятельно на основе требуемых вам различий, напримерприложение / msword -> office, а не application и т.д.
Поскольку ваши классификации довольно произвольны и специфичны для вашего собственного варианта использования, вам, вероятно, придется классифицировать их самостоятельно по желаемым категориям, напримериспользуя функцию, подобную приведенной ниже:
/**
* Classify mime types into pre-determined categories
* 2-d array used for simplicity of example, error
* checking omitted so unrecognised string returns
* empty value here...
*/
function categorize_mime_types($mime)
{
// Classify mime types into desired categories, key-val pairings
$mimes = array("application/msword"=>"office",
"application/vnd.oasis.opendocument.text"=>"office",
....
"image/jpeg"=>"image");
return $mimes[$mime];
}
Сбор всех типов mime для выполнения этого может занять довольно много времени, хотя существует ряд веб-сайтов, на которых большие списки чтобы вы начали.