Intereting Posts
Получить номер недели между двумя датами в php Разбивка страницы с помощью Twig и Eloquent-5.2 Почему я не могу получать сообщения от GCM на устройстве Android перенаправление на / добавление www в проекте на основе URL-кода Как отбирать строки таблицы из db (php) Автоматическое добавление товара в корзину, когда другой товар присутствует в пурпурной тележке Отображение значений базы данных в соответствии с выбранным фильтром в выпадающем меню Как преобразовать большую строку данных изображения base64 обратно в образ с помощью PHP? Ajax на интервале WordPress – получить сообщение, основанное на мета-полевом содержимом Укажите количество файлов в каталоге php MySIte немедленно выйдет из системы для второго запроса Безопасная функция сравнения строк Получение только определенной части тела электронной почты с использованием imap_body Получение непрочитанной почты из веб-сервисов обмена через PHP

Как определить расширение (-ы), связанное с типом MIME в PHP?

Есть ли быстрое и грязное сопоставление типов MIME с расширениями на PHP, которые я могу использовать?

Не встроенный, но не очень сложно катиться самостоятельно:

function system_extension_mime_types() { # Returns the system MIME type mapping of extensions to MIME types, as defined in /etc/mime.types. $out = array(); $file = fopen('/etc/mime.types', 'r'); while(($line = fgets($file)) !== false) { $line = trim(preg_replace('/#.*/', '', $line)); if(!$line) continue; $parts = preg_split('/\s+/', $line); if(count($parts) == 1) continue; $type = array_shift($parts); foreach($parts as $part) $out[$part] = $type; } fclose($file); return $out; } function system_extension_mime_type($file) { # Returns the system MIME type (as defined in /etc/mime.types) for the filename specified. # # $file - the filename to examine static $types; if(!isset($types)) $types = system_extension_mime_types(); $ext = pathinfo($file, PATHINFO_EXTENSION); if(!$ext) $ext = $file; $ext = strtolower($ext); return isset($types[$ext]) ? $types[$ext] : null; } function system_mime_type_extensions() { # Returns the system MIME type mapping of MIME types to extensions, as defined in /etc/mime.types (considering the first # extension listed to be canonical). $out = array(); $file = fopen('/etc/mime.types', 'r'); while(($line = fgets($file)) !== false) { $line = trim(preg_replace('/#.*/', '', $line)); if(!$line) continue; $parts = preg_split('/\s+/', $line); if(count($parts) == 1) continue; $type = array_shift($parts); if(!isset($out[$type])) $out[$type] = array_shift($parts); } fclose($file); return $out; } function system_mime_type_extension($type) { # Returns the canonical file extension for the MIME type specified, as defined in /etc/mime.types (considering the first # extension listed to be canonical). # # $type - the MIME type static $exts; if(!isset($exts)) $exts = system_mime_type_extensions(); return isset($exts[$type]) ? $exts[$type] : null; } 

Вы можете использовать mime_content_type но он устарел. Вместо этого используйте fileinfo :

 function getMimeType($filename) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime = finfo_file($finfo, $filename); finfo_close($finfo); return $mime; } 

Если вы хотите использовать веб-сервис, я просто создал это как часть моей службы mimetype <->.

http://stdicon.com/

Например :

http://stdicon.com/ext/html

Он работает на appengine, поэтому он должен иметь высокую доступность.

Если вы работаете с ограниченным расширением изображений и нуждаетесь в чем-то очень простом, я думаю, этого достаточно.

  switch($info['mime']) { case 'image/gif' : $extension = 'gif'; break; case 'image/png' : $extension = 'png'; break; case 'image/jpeg' : $extension = 'jpg'; break; default : throw new ApplicationException('The file uploaded was not a valid image file.'); break; } 

Возможно, вы захотите использовать эту библиотеку: https://github.com/ralouphie/mimey

Пример использования:

 $mimes = new \Mimey\MimeTypes; // Convert extension to MIME type: $mimes->getMimeType('json'); // application/json // Convert MIME type to extension: $mimes->getExtension('application/json'); // json 

Это потому, что качество предоставляемых функций PHP сомнительно.

используйте этот файл: https://github.com/ralouphie/mimey/blob/develop/mime.types.php

как это :

 $mimes=include('mime.types.php'); 

или копировать содержимое:

 $mime= array ( 'mimes' => array ( 'ez' => array ( 0 => 'application/andrew-inset', ), 'aw' => array ( 0 => 'application/applixware', ), 'atom' => array ( 0 => 'application/atom+xml', ), 'atomcat' => array ( 0 => 'application/atomcat+xml', ) ... 

и пример получения из потока:

  $finfo = new \finfo(FILEINFO_MIME_TYPE); $mime=$finfo->buffer($data); $mimes=include(__DIR__."/mime.types.php"); echo ($mime); //mime echo ($mimes['extensions'][$mime]); // file extension в  $finfo = new \finfo(FILEINFO_MIME_TYPE); $mime=$finfo->buffer($data); $mimes=include(__DIR__."/mime.types.php"); echo ($mime); //mime echo ($mimes['extensions'][$mime]); // file extension