利用PHP取二进制文件头判断文件类型

<?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 />';
}