中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

php獲取文件MIME類型

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
<?php
$mime = array (
        //applications
        'ai'    => 'application/postscript',
        'eps'   => 'application/postscript',
        'exe'   => 'application/octet-stream',
        'doc'   => 'application/vnd.ms-word',
        'xls'   => 'application/vnd.ms-excel',
        'ppt'   => 'application/vnd.ms-powerpoint',
        'pps'   => 'application/vnd.ms-powerpoint',
        'pdf'   => 'application/pdf',
        'xml'   => 'application/xml',
        'odt'   => 'application/vnd.oasis.opendocument.text',
        'swf'   => 'application/x-shockwave-flash',
        // archives
        'gz'    => 'application/x-gzip',
        'tgz'   => 'application/x-gzip',
        'bz'    => 'application/x-bzip2',
        'bz2'   => 'application/x-bzip2',
        'tbz'   => 'application/x-bzip2',
        'zip'   => 'application/zip',
        'rar'   => 'application/x-rar',
        'tar'   => 'application/x-tar',
        '7z'    => 'application/x-7z-compressed',
        // texts
        'txt'   => 'text/plain',
        'php'   => 'text/x-php',
        'html'  => 'text/html',
        'htm'   => 'text/html',
        'js'    => 'text/javascript',
        'css'   => 'text/css',
        'rtf'   => 'text/rtf',
        'rtfd'  => 'text/rtfd',
        'py'    => 'text/x-python',
        'java'  => 'text/x-java-source',
        'rb'    => 'text/x-ruby',
        'sh'    => 'text/x-shellscript',
        'pl'    => 'text/x-perl',
        'sql'   => 'text/x-sql',
        // images
        'bmp'   => 'image/x-ms-bmp',
        'jpg'   => 'image/jpeg',
        'jpeg'  => 'image/jpeg',
        'gif'   => 'image/gif',
        'png'   => 'image/png',
        'tif'   => 'image/tiff',
        'tiff'  => 'image/tiff',
        'tga'   => 'image/x-targa',
        'psd'   => 'image/vnd.adobe.photoshop',
        //audio
        'mp3'   => 'audio/mpeg',
        'mid'   => 'audio/midi',
        'ogg'   => 'audio/ogg',
        'mp4a'  => 'audio/mp4',
        'wav'   => 'audio/wav',
        'wma'   => 'audio/x-ms-wma',
        // video
        'avi'   => 'video/x-msvideo',
        'dv'    => 'video/x-dv',
        'mp4'   => 'video/mp4',
        'mpeg'  => 'video/mpeg',
        'mpg'   => 'video/mpeg',
        'mov'   => 'video/quicktime',
        'wm'    => 'video/x-ms-wmv',
        'flv'   => 'video/x-flv',
        'mkv'   => 'video/x-matroska'
        );

function _getMimeDetect() {
    if (class_exists('finfo')) {
        return 'finfo';
    } else if (function_exists('mime_content_type')) {
        return 'mime_content_type';
    } else if ( function_exists('exec')) {
        $result = exec('file -ib '.escapeshellarg(__FILE__));
        if ( 0 === strpos($result, 'text/x-php') OR 0 === strpos($result, 'text/x-c++')) {
            return 'linux';
        }
        $result = exec('file -Ib '.escapeshellarg(__FILE__));
        if ( 0 === strpos($result, 'text/x-php') OR 0 === strpos($result, 'text/x-c++')) {
            return 'bsd';
        }
    }
    return 'internal';
}

function _getMimeType($path) {
    global $mime;
    $fmime = _getMimeDetect();
    switch($fmime) {
        case 'finfo':
            $finfo = finfo_open(FILEINFO_MIME);
            if ($finfo) 
                $type = @finfo_file($finfo, $path);
            break;
        case 'mime_content_type':
            $type = mime_content_type($path);
            break;
        case 'linux':
            $type = exec('file -ib '.escapeshellarg($path));
            break;
        case 'bsd':
            $type = exec('file -Ib '.escapeshellarg($path));
            break;
        default:
            $pinfo = pathinfo($path);
            $ext = isset($pinfo['extension']) ? strtolower($pinfo['extension']) : '';
            $type = isset($mime[$ext]) ? $mime[$ext] : 'unkown';
            break;
    }
    $type = explode(';', $type);

    //需要加上這段,因?yàn)槿绻褂胢ime_content_type函數(shù)來(lái)獲取一個(gè)不存在的$path時(shí)會(huì)返回'application/octet-stream'
    if ($fmime != 'internal' AND $type[0] == 'application/octet-stream') {
        $pinfo = pathinfo($path); 
        $ext = isset($pinfo['extension']) ? strtolower($pinfo['extension']) : '';
        if (!empty($ext) AND !empty($mime[$ext])) {
            $type[0] = $mime[$ext];
        }
    }

    return $type[0];
}

$path = '1.txt';  //實(shí)際上當(dāng)前路徑并不存在1.txt
var_dump(_getMimeType($path));

/*End of php*/

標(biāo)簽: linux

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:PHP獲取IP與連接數(shù),并獲取IP所在地址

下一篇:Java代碼 10進(jìn)制轉(zhuǎn)2、8、16進(jìn)制轉(zhuǎn)換 / 2、8、16進(jìn)制轉(zhuǎn)10進(jìn)制轉(zhuǎn)換