Я пытаюсь определить тип пантомимы файла. Я пробовал несколько методов, но не нашел ничего, что давало бы стабильный результат. Я пробовал $mime = mime_content_type($file)
и $mime = exec('file -bi ' . $file)
. Я обслуживаю изображения, CSS и JavaScript.
Пример mime_content_type()
вывод:
- jquery.min.js - текст / обычный
- editor.js - текст / обычный
- admin.css - текст / обычный
- controls.css - application / x-troff
- logo.png - текст / обычный
Пример exec(...)
вывод:
- jquery.min.js - текст / обычный текст; Charset = US-ASCII
- editor.js - текст / x-c ++; Charset = US-ASCII
- admin.css - текст / x-c; Charset = US-ASCII
- controls.css - текст / x-c; Charset = US-ASCII
- logo.png - image / png
Как видно здесь, результаты повсюду.
Моя версия PHP 5.2.6
РЕШЕНИЕ (спасибо Джейкобу)
$mimetypes = array(
'gif' => 'image/gif',
'png' => 'image/png',
'jpg' => 'image/jpg',
'css' => 'text/css',
'js' => 'text/javascript',
);
$path_parts = pathinfo($file);
if (array_key_exists($path_parts['extension'], $mimetypes)) {
$mime = $mimetypes[$path_parts['extension']];
} else {
$mime = 'application/octet-stream';
}