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; ?>
例2:
<?php //linux下php还有个函数可以判断文件类型 echo mime_content_type('11.gif') . "\n"; echo mime_content_type('22.php'); ?>