Как классифицировать типы MIME (PHP)

Я ищу фрагмент кода, который классифицирует типы MIME.

Например,

приложение / msword

приложение / vnd.oasis.opendocument.text

application / pdf

Оба они - офисные файлы. Когда я передаю этот тип mime функции, я хочу, чтобы он возвращал результат, который является «офис», «изображение», «приложение», «сжатый» и т. Д.

Однако, как вы знаете, существуют сотни типов пантомимы, и я не могу собрать их все.

Вы знаете, где я могу его найти?


person Ahmet Alp Balkan    schedule 14.01.2009    source источник
comment
А критерии классификации есть?   -  person Milen A. Radev    schedule 14.01.2009
comment
Я задал аналогичный вопрос: stackoverflow.com/ questions / 1297915 /. Пожалуйста, напишите здесь, если на этот вопрос ответят.   -  person Paul Tarjan    schedule 19.08.2009


Ответы (1)


Я не знаю ни одного существующего сценария, который классифицировал бы эти типы по вашему желанию. Возможно, вам придется создать эту функцию самостоятельно, исходя из требуемых различий, например application / msword -> офис, а не приложение и т. д.

Поскольку ваши классификации довольно произвольны и относятся к вашему собственному варианту использования, вам, вероятно, придется сами классифицировать их по желаемым категориям, например используя функцию, подобную приведенной ниже:

/**
 * 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 для этого может занять довольно много времени, хотя есть несколько веб-сайтов, на которых есть большие списки для начала.

person ConroyP    schedule 14.01.2009
comment
Ах, рефенс sitepoint тоже не классифицировал их :( Как я могу это сделать, вообще-то я не знаю :( - person Ahmet Alp Balkan; 14.01.2009