欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

通过文件前几个字节判断文件类型

程序员文章站 2022-03-16 18:27:28
...

[PHP]代码

function file_type($filename){
    $file = fopen($filename, "rb");
    $bin = fread($file, 4);
    fclose($file);
    $strInfo = @unpack("H*chars", $bin);
    $typeCode = $strInfo['chars'];
    $typeCode = strtoupper($typeCode);
    
    $hex_3 =  substr($typeCode,0,6);
    $hex_4 =  substr($typeCode,0,8);

    $fileType = '';
    switch ($hex_3)
    {
        case 'FFD8FF':
            $fileType = 'jpg';
            break;
    }

    if(!empty($fileType)){
        return $fileType;
    }

    switch ($hex_4)
    {
        case '89504E47':
            $fileType = 'png';
            break;
        case '47494638':
            $fileType = 'gif';
            break;
        case '00000018':
            $fileType = 'arm';
            break;
        case '2321414D':
            $fileType = 'amr';
            break;
        default:
            $fileType = 'unknown: '.$typeCode;
    }
    return $fileType;
}

[PHP]代码

JPEG (jpg),文件头:FFD8FF  
PNG (png),文件头:89504E47  
GIF (gif),文件头:47494638  
TIFF (tif),文件头:49492A00  
Windows Bitmap (bmp),文件头:424D  
CAD (dwg),文件头:41433130  
Adobe Photoshop (psd),文件头:38425053  
Rich Text Format (rtf),文件头:7B5C727466  
XML (xml),文件头:3C3F786D6C  
HTML (html),文件头:68746D6C3E  
Email [thorough only] (eml),文件头:44656C69766572792D646174653A  
Outlook Express (dbx),文件头:CFAD12FEC5FD746F  
Outlook (pst),文件头:2142444E  
MS Word/Excel (xls.or.doc),文件头:D0CF11E0  
MS Access (mdb),文件头:5374616E64617264204A  
WordPerfect (wpd),文件头:FF575043  
Postscript (eps.or.ps),文件头:252150532D41646F6265  
Adobe Acrobat (pdf),文件头:255044462D312E  
Quicken (qdf),文件头:AC9EBD8F  
Windows Password (pwl),文件头:E3828596  
ZIP Archive (zip),文件头:504B0304  
RAR Archive (rar),文件头:52617221  
Wave (wav),文件头:57415645  
AVI (avi),文件头:41564920  
Real Audio (ram),文件头:2E7261FD  
Real Media (rm),文件头:2E524D46  
MPEG (mpg),文件头:000001BA  
MPEG (mpg),文件头:000001B3  
Quicktime (mov),文件头:6D6F6F76  
Windows Media (asf),文件头:3026B2758E66CF11  
MIDI (mid),文件头:4D546864
相关标签: php