php m4a文件头,php根据文件头验证文件类型的代码

/**

* 检证文件类型类

*

* @author Silver

* by bbs.it-home.org

*/

class FileTypeValidation

{

// 文件类型,不同的头信息

private static $_fileFormats = Array(

'jp2' => '0000000C6A502020',

'3gp' => '0000002066747970',

'3gp5' => '0000001866747970',

'm4a' => '00000020667479704D3441',

'ico' => '00000100',

'spl' => '00000100',

'vob' => '000001BA',

'cur' => '00000200',

'wb2' => '00000200',

'wk1' => '0000020006040600',

'wk3' => '00001A0000100400',

'wk4' => '00001A0002100400',

'wk5' => '00001A0002100400',

'123' => '00001A00051004',

'qxd' => '00004D4D585052',

'mdf' => '010F0000',

'tr1' => '0110',

'rgb' => '01DA01010003',

'drw' => '07',

'dss' => '02647373',

'dat' => 'A90D000000000000',

'db3' => '03',

'qph' => '03000000',

'adx' => '80000020031204',

'db4' => '04',

'n' => 'FFFE0000',

'a' => 'FFFE0000',

'skf' => '07534B46',

'dtd' => '0764743264647464',

'db' => 'D0CF11E0A1B11AE1',

'pcx' => '0A050101',

'mp' => '0CED',

'doc' => 'D0CF11E0A1B11AE1',

'nri' => '0E4E65726F49534F',

'wks' => 'FF00020004040554',

'pf' => '1100000053434341',

'ntf' => '4E49544630',

'nsf' => '4E45534D1A01',

'arc' => '41724301',

'pak' => '5041434B',

'eth' => '1A350100',

'mkv' => '1A45DFA393428288',

'ws' => '1D7D',

'gz' => '1F8B08',

'tar.z' => '1FA0',

'ain' => '2112',

'lib' => '213C617263683E0A',

'msi' => 'D0CF11E0A1B11AE1',

'vmdk' => '4B444D',

'dsp' => '23204D6963726F73',

'amr' => '2321414D52',

'hdr' => '49536328',

'sav' => '24464C3240282329',

'eps' => 'C5D0D3C6',

'pdf' => '25504446',

'fdf' => '25504446',

'hqx' => '2854686973206669',

'log' => '2A2A2A2020496E73',

'ivr' => '2E524543',

'rm' => '2E524D46',

'rmvb' => '2E524D46',

'ra' => '2E7261FD00',

'au' => '646E732E',

'cat' => '30',

'evt' => '300000004C664C65',

'asf' => '3026B2758E66CF11',

'wma' => '3026B2758E66CF11',

'wmv' => '3026B2758E66CF11',

'wri' => 'BE000000AB',

'7z' => '377ABCAF271C',

'psd' => '38425053',

'sle' => '414376',

'asx' => '3C',

'xdr' => '3C',

'dci' => '3C21646F63747970',

'manifest' => '3C3F786D6C2076657273696F6E3D',

'xml' => '3C3F786D6C2076657273696F6E3D22312E30223F3E',

'msc' => 'D0CF11E0A1B11AE1',

'fm' => '3C4D616B65724669',

'mif' => '56657273696F6E20',

'gid' => '4C4E0200',

'hlp' => '4C4E0200',

'dwg' => '41433130',

'syw' => '414D594F',

'abi' => '414F4C494E444558',

'aby' => '414F4C4442',

'bag' => '414F4C2046656564',

'idx' => '5000000020000000',

'ind' => '414F4C494458',

'pfc' => '414F4C564D313030',

'org' => '414F4C564D313030',

'vcf' => '424547494E3A5643',

'bin' => '424C4932323351',

'bmp' => '424D',

'dib' => '424D',

'prc' => '424F4F4B4D4F4249',

'bz2' => '425A68',

'tar.bz2' => '425A68',

'tbz2' => '425A68',

'tb2' => '425A68',

'rtd' => '43232B44A4434DA5',

'cbd' => '434246494C45',

'iso' => '4344303031',

'clb' => '434F4D2B',

'cpt' => '43505446494C45',

'cru' => '43525553482076',

'swf' => '465753',

'ctf' => '436174616C6F6720',

'dms' => '444D5321',

'adf' => '5245564E554D3A2C',

'dvr' => '445644',

'ifo' => '445644',

'cdr' => '52494646',

'vcd' => '454E545259564344',

'mdi' => '4550',

'e01' => '4C5646090D0AFF00',

'evtx' => '456C6646696C6500',

'qbb' => '458600000600',

'cpe' => '464158434F564552',

'flv' => '464C56',

'aiff' => '464F524D00',

'eml' => '582D',

'gif' => '47494638',

'pat' => '47504154',

'gx2' => '475832',

'sh3' => '4848474231',

'tif' => '4D4D002B',

'tiff' => '4D4D002B',

'mp3' => '494433',

'koz' => '49443303000000',

'crw' => '49491A0000004845',

'cab' => '4D534346',

'lit' => '49544F4C49544C53',

'chi' => '49545346',

'chm' => '49545346',

'jar' => '5F27A889',

'jg' => '4A47040E000000',

'kgb' => '4B47425F61726368',

'shd' => '68490000',

'lnk' => '4C00000001140200',

'obj' => '80',

'pdb' => 'ACED000573720012',

'mar' => '4D41723000',

'dmp' => '504147454455',

'hdmp' => '4D444D5093A7',

'mls' => '4D563243',

'mmf' => '4D4D4D440000',

'nvram' => '4D52564E',

'ppz' => '4D534346',

'snp' => '4D534346',

'tlb' => '4D53465402000100',

'dvf' => '4D535F564F494345',

'msv' => '4D535F564F494345',

'mid' => '4D546864',

'midi' => '4D546864',

'dsn' => '4D56',

'com' => 'EB',

'dll' => '4D5A',

'drv' => '4D5A',

'exe' => '4D5A',

'pif' => '4D5A',

'qts' => '4D5A',

'qtx' => '4D5A',

'sys' => 'FFFFFFFF',

'acm' => '4D5A',

'ax' => '4D5A900003000000',

'cpl' => 'DCDC',

'fon' => '4D5A',

'ocx' => '4D5A',

'olb' => '4D5A',

'scr' => '4D5A',

'vbx' => '4D5A',

'vxd' => '4D5A',

'386' => '4D5A',

'api' => '4D5A900003000000',

'flt' => '76323030332E3130',

'zap' => '4D5A90000300000004000000FFFF',

'sln' => '4D6963726F736F66742056697375616C',

'jnt' => '4E422A00',

'jtp' => '4E422A00',

'cod' => '4E616D653A20',

'dbf' => '4F504C4461746162',

'oga' => '4F67675300020000',

'ogg' => '4F67675300020000',

'ogv' => '4F67675300020000',

'ogx' => '4F67675300020000',

'dw4' => '4F7B',

'pgm' => '50350A',

'pax' => '504158',

'pgd' => '504750644D41494E',

'img' => 'EB3C902A',

'zip' => '504B0304140000',

'docx' => '504B030414000600',

'pptx' => '504B030414000600',

'xlsx' => '504B030414000600',

'kwd' => '504B0304',

'odt' => '504B0304',

'odp' => '504B0304',

'ott' => '504B0304',

'sxc' => '504B0304',

'sxd' => '504B0304',

'sxi' => '504B0304',

'sxw' => '504B0304',

'wmz' => '504B0304',

'xpi' => '504B0304',

'xps' => '504B0304',

'xpt' => '5850434F4D0A5479',

'grp' => '504D4343',

'qemu' => '514649',

'abd' => '5157205665722E20',

'qsd' => '5157205665722E20',

'reg' => 'FFFE',

'sud' => '52454745444954',

'ani' => '52494646',

'cmx' => '52494646',

'ds4' => '52494646',

'4xm' => '52494646',

'avi' => '52494646',

'cda' => '52494646',

'qcp' => '52494646',

'rmi' => '52494646',

'wav' => '52494646',

'cap' => '58435000',

'rar' => '526172211A0700',

'ast' => '5343486C',

'shw' => '53484F57',

'cpi' => 'FF464F4E54',

'sit' => '5374756666497420',

'sdr' => '534D415254445257',

'cnv' => '53514C4F434F4E56',

'cal' => 'B5A2B0B3B3B0A5B5',

'info' => 'E310000100000000',

'uce' => '55434558',

'ufa' => '554641C6D2C1',

'pch' => '564350434830',

'ctl' => '56455253494F4E20',

'ws2' => '575332303030',

'lwp' => '576F726450726F',

'bdr' => '5854',

'zoo' => '5A4F4F20',

'ecf' => '5B47656E6572616C',

'vcw' => '5B4D535643',

'dun' => '5B50686F6E655D',

'sam' => '5B7665725D',

'cpx' => '5B57696E646F7773',

'cfg' => '5B666C7473696D2E',

'cas' => '5F434153455F',

'cbk' => '5F434153455F',

'arj' => '60EA',

'vhd' => '636F6E6563746978',

'csh' => '6375736800000002',

'p10' => '64000000',

'dex' => '6465780A30303900',

'dsw' => '64737766696C65',

'flac' => '664C614300000022',

'dbb' => '6C33336C',

'acd' => '72696666',

'ram' => '727473703A2F2F',

'dmg' => '78',

'lgc' => '7B0D0A6F20',

'lgd' => '7B0D0A6F20',

'pwi' => '7B5C707769',

'rtf' => '7B5C72746631',

'psp' => '7E424B00',

'wab' => '9CCBCB8D1375D211',

'wpf' => '81CDAB',

'png' => '89504E470D0A1A0A',

'aw' => '8A0109000000E108',

'hap' => '91334846',

'skr' => '9501',

'gpg' => '99',

'pkr' => '9901',

'qdf' => 'AC9EBD8F0000',

'pwl' => 'E3828596',

'dcx' => 'B168DE3A',

'tib' => 'B46E6844',

'acs' => 'C3ABCDAB',

'lbk' => 'C8007900',

'class' => 'CAFEBABE',

'dbx' => 'CFAD12FE',

'dot' => 'D0CF11E0A1B11AE1',

'pps' => 'D0CF11E0A1B11AE1',

'ppt' => 'D0CF11E0A1B11AE1',

'xla' => 'D0CF11E0A1B11AE1',

'xls' => 'D0CF11E0A1B11AE1',

'wiz' => 'D0CF11E0A1B11AE1',

'ac_' => 'D0CF11E0A1B11AE1',

'adp' => 'D0CF11E0A1B11AE1',

'apr' => 'D0CF11E0A1B11AE1',

'mtw' => 'D0CF11E0A1B11AE1',

'opt' => 'D0CF11E0A1B11AE1',

'pub' => 'D0CF11E0A1B11AE1',

'rvt' => 'D0CF11E0A1B11AE1',

'sou' => 'D0CF11E0A1B11AE1',

'spo' => 'D0CF11E0A1B11AE1',

'vsd' => 'D0CF11E0A1B11AE1',

'wps' => 'D0CF11E0A1B11AE1',

'ftr' => 'D20A0000',

'arl' => 'D42A',

'aut' => 'D42A',

'wmf' => 'D7CDC69A',

'efx' => 'DCFE',

'one' => 'E4525C7B8CD8A74D',

'rpm' => 'EDABEEDB',

'gho' => 'FEEF',

'ghs' => 'FEEF',

'wp' => 'FF575043',

'wpd' => 'FF575043',

'wpg' => 'FF575043',

'wpp' => 'FF575043',

'wp5' => 'FF575043',

'wp6' => 'FF575043',

'jfif' => 'FFD8FF',

'jpe' => 'FFD8FF',

'jpeg' => 'FFD8FF',

'jpg' => 'FFD8FF',

'mof' => 'FFFE23006C006900',

'ipa' => '504B03040A',

);

/**

* 检查文件类型

*

* @param string $filePath 文件路径

* @param string $fileExt 文件扩展名

*

* @return boolean

*/

public static function validation($filePath, $fileExt)

{

// 文件格式未知

if (!isset(self::$_fileFormats[$fileExt]))

{

return false;

}

$length = strlen(self::$_fileFormats[$fileExt]);

$bin = self::_readFile($filePath, $length);

$fileHead = @unpack("H{$length}", $bin);

// 判断文件头

if (strtolower(self::$_fileFormats[$fileExt]) == $fileHead[1])

{

return true;

}

return false;

}

/**

* 读取文件内容

*

* @param string $filePath 文件路径

* @param integer $size

*

* @return string

*/

private function _readFile($filePath, $size)

{

$file = fopen($filePath, "rb");

$bin = fread($file, $size);

fclose($file);

return $bin;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值