很多php程序中,判断文件类型多是用扩展名,本文介绍的方法是读取文件头判断文件类型,支持图片、rar、exe等后缀。有需要的朋友参考下。
php读取文件头判断文件类型,支持图片(jpg,gif,png)、rar、exe等后缀。 代码: <?php //读取文件头来判断文件类型 //by bbs.it-home.org $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; ?> 示例: <?php //方法二 //用mime_content_type函数判断文件类型 echo mime_content_type('11.gif') . "\n"; echo mime_content_type('22.php'); ?> |