← MIME to Extension Download
/**----------------------------------------------------------------------------\
| Resolves a MIME type's common file extension. |
+------------------------------------------------------------------------------+
| Usage: |
| echo mime_to_ext('application/javascript'); |
| |
| Result: |
| js |
+---------+--------+-------+---------------------------------------------------+
| @param | string | $mime | A MIME type. |
| | | | |
| @return | string | | The MIME type's common file extension. |
\---------+--------+-------+--------------------------------------------------*/
function mime_to_ext($mime){
static $extensions = [
'application/postscript' => 'ai',
'text/x-asm' => 'asm',
'text/x-msdos-batch' => 'bat',
'image/bmp' => 'bmp',
'text/x-c' => 'c',
'application/vnd.ms-cab-compressed' => 'cab',
'application/pkix-cert' => 'cer',
'application/pkix-crl' => 'crl',
'application/x-pkcs7-crl' => 'crl',
'application/x-x509-ca-cert' => 'crt',
'application/x-x509-user-cert' => 'crt',
'application/pkcs10' => 'csr',
'text/css' => 'css',
'application/x-x509-ca-cert' => 'der',
'application/msword' => 'doc',
'application/vnd.ms-word.document.macroEnabled.12' => 'docm',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx',
'application/msword' => 'dot',
'application/vnd.ms-word.template.macroEnabled.12' => 'dotm',
'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx',
'application/vnd.ms-fontobject' => 'eot',
'application/postscript' => 'eps',
'application/x-msdownload' => 'exe',
'video/x-flv' => 'flv',
'image/gif' => 'gif',
'text/html' => 'htm',
'text/html' => 'html',
'image/vnd.microsoft.icon' => 'ico',
'image/jpeg' => 'jpe',
'image/jpeg' => 'jpeg',
'image/jpeg' => 'jpg',
'application/javascript' => 'js',
'application/json' => 'json',
'application/pkcs8' => 'key',
'video/quicktime' => 'mov',
'audio/mpeg' => 'mp3',
'application/x-msdownload' => 'msi',
'application/vnd.oasis.opendocument.spreadsheet' => 'ods',
'application/vnd.oasis.opendocument.text' => 'odt',
'application/x-font-opentype' => 'otf',
'application/pkcs10' => 'p10',
'application/x-pkcs12' => 'p12',
'application/x-pkcs7-certificates' => 'p7b',
'application/pkcs7-mime' => 'p7c',
'application/x-pkcs7-certreqresp' => 'p7r',
'application/pkcs8' => 'p8',
'application/pdf' => 'pdf',
'application/x-pem-file' => 'pem',
'application/x-pkcs12' => 'pfx',
'text/x-php' => 'php',
'image/png' => 'png',
'application/vnd.ms-powerpoint' => 'pot',
'application/vnd.ms-powerpoint.template.macroEnabled.12' => 'potm',
'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx',
'application/vnd.ms-powerpoint' => 'ppa',
'application/vnd.ms-powerpoint.addin.macroEnabled.12' => 'ppam',
'application/vnd.ms-powerpoint' => 'pps',
'application/vnd.ms-powerpoint.slideshow.macroEnabled.12' => 'ppsm',
'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx',
'application/vnd.ms-powerpoint' => 'ppt',
'application/vnd.ms-powerpoint.presentation.macroEnabled.12' => 'pptm',
'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx',
'application/postscript' => 'ps',
'image/vnd.adobe.photoshop' => 'psd',
'video/quicktime' => 'qt',
'application/x-rar-compressed' => 'rar',
'application/rtf' => 'rtf',
'application/font-sfnt' => 'sfnt',
'text/x-shellscript' => 'sh',
'application/x-pkcs7-certificates' => 'spc',
'application/sql' => 'sql',
'image/svg+xml' => 'svg',
'image/svg+xml' => 'svgz',
'application/x-shockwave-flash' => 'swf',
'image/tiff' => 'tif',
'image/tiff' => 'tiff',
'application/x-font-truetype' => 'ttf',
'application/x-font-ttf' => 'ttf',
'text/plain' => 'txt',
'application/internet-shortcut' => 'url',
'application/font-woff' => 'woff',
'application/font-woff2' => 'woff2',
'application/vnd.ms-excel' => 'xla',
'application/vnd.ms-excel.addin.macroEnabled.12' => 'xlam',
'application/vnd.ms-excel' => 'xls',
'application/vnd.ms-excel.sheet.binary.macroEnabled.12' => 'xlsb',
'application/vnd.ms-excel.sheet.macroEnabled.12' => 'xlsm',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx',
'application/vnd.ms-excel' => 'xlt',
'application/vnd.ms-excel.template.macroEnabled.12' => 'xltm',
'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx',
'application/xml' => 'xml',
'application/zip' => 'zip',
];
$mime = mb_strtolower($mime);
if(!empty($extensions[$mime])) return $extensions[$mime];
}