<?php $files = array('D:\no.jpg', 'D:\no.png','D:\no2.JPEG','D:\no.BMP'); $fileTypes = array( 7790 => 'exe', 7784 => 'midi', 8297 => 'rar', 255216 => 'jpg', 7173 => 'gif', 6677 => 'bmp', 13780 => 'png' ); foreach($files as $file) { $fp = fopen($file, 'rb'); $bin = fread($fp, 2); //利用PHP取二进制文件头判断文件类型,每个文件在产生的时候,他是什么类型的文件,都由这个二进制头部的2个字节决定的 fclose($fp); $strInfo = unpack("C2chars", $bin);// 函数从二进制字符串对数据进行解包。 $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); $fileType = isset($fileTypes[$typeCode]) ? $fileTypes[$typeCode] : 'unknown'; echo $file , ' type : <b>', $fileType, '</b><br />'; }