PHP读取二进制文件头判断文件类型
php代码实现读取文件头判断文件类型,支持图片、rar、exe等后缀。 代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php date_default_timezone_set('PRC'); header("Content-type:text/html;charset=utf-8"); /** * @author lzq * @link http://www.pherblog.cn */ //使用 'b' 来强制使用二进制模式 $fp = fopen('20160809142823.png', 'rb'); //只读二进制文件,前2个字节就可以判断文件类型 $bin = fread($fp, 2); fclose($fp); $code = unpack('C2chars', $bin); //将二进制转为十进制 $type_code = intval($code['chars1'].$code['chars2']); $type = ''; switch ($type_code){ 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 : $type = 'unknown'; } echo $type;exit; |
Read more