php代码实现读取文件头判断文件类型,支持图片、rar、exe等后缀。
案例
- <?php
- $filename = "11.jpg";//为图片的路径可以用d:/upload/11.jpg等绝对路径
- $file = fopen($filename, "rb");
- $bin = fread($file, 2); //只读2字节
- fclose($file);
- $strInfo = @unpack("C2chars", $bin);
- $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
- $fileType = '';
- switch ($typeCode)
- {
- case 7790:
- $fileType = 'exe';
- break;
- case 7784:
- $fileType = 'midi';
- break;
- case 8297:
- $fileType = 'rar';
- break;
- case 255216:
- $fileType = 'jpg';
- break;
- case 7173:
- $fileType = 'gif';
- break;
- case 6677:
- $fileType = 'bmp';
- break;
- case 13780:
- $fileType = 'png';
- break;
- default:
- echo 'unknown';
- }
- echo '这是一个'.$fileType.' file:'.$typeCode;
- ?>
linux下php还有个函数可以判断文件类型
案例:
- <?php
- echo mime_content_type('11.gif') . "\n";
- echo mime_content_type('22.php');
- ?>