- /**
- * Document type
- *
- * @ Author Silver
- * By bbs.it-home.org
- */
- Class FileTypeValidation
- {
- // File type, different header information
- Private static $ _ fileFormats = Array (
- 'Jp2' => '0000000c6a502020 ',
'3gp '=> '123 ',
- & Apos; 3gp5 & apos; = & apos; 0000001866747970 & apos ',
- 'M4a '=> '00000020667479704d3441 ',
- 'Ico '=> '123 ',
- 'Spl' => '123 ',
- 'Vob' => '0001ba ',
- & Apos; cur & apos; = & apos; 00000200 & apos ',
- 'Wb2' => '123 ',
- 'Wk1 '=> '123 ',
- 'Wk3' => '20171a0000100400 ',
- 'Wk4 '=> '20171a0002100400 ',
- 'Wk5 '=> '20171a0002100400 ',
- '20140901' => '20171a00051004 ',
- 'Qxd '=> '20174d4d585052 ',
- 'Mdf '=> '010f0000 ',
- 'Tr1' => '123 ',
- 'Rgb '=> '01da01010003 ',
- 'Drw' => '07 ',
- 'Dss '=> '123 ',
- 'Dat '=> 'a90d000000000000 ',
- 'Db3' => '03 ',
- 'Qph' => '123 ',
- 'Adx' => '123 ',
- 'Db4' => '04 ',
- 'N' => 'fffe000000 ',
- 'A' => 'fffe000000 ',
- 'Skf '=> '07534b46 ',
- 'Dtd '=> '123 ',
- 'DB' => 'd0cf11e0a1b11ae1 ',
- 'Pcx' => '0a050101 ',
- 'MP' => '0ced ',
- 'Doc' => 'd0cf11e0a1b11ae1 ',
- 'Nri' => '0e4e65108f49534f ',
- 'Wk' => 'ff00020004040554 ',
- 'Pf '=> '123 ',
- 'Ntf' => '4e49544630 ',
- 'NSF '=> '4e45534d1a01 ',
- 'Arc' => '123 ',
- 'Pak '=> '5041434b ',
- 'Eth '=> '1a350100 ',
- 'Mkv '=> '1a45dfa393428288 ',
- 'Ws '=> '1d7d ',
- 'Gz '=> '1f8b08 ',
- 'Tar. Z' => '1fa0 ',
- 'Ain '=> '123 ',
- 'Lib' => 'Export c617264243e0a ',
- 'Msi '=> 'd0cf11e0a1b11ae1 ',
- 'Vmdk' => '4b444d ',
- 'Dsps '=> '23204d6963726f73 ',
- 'Amr' => '2321414d52 ',
- & Apos; hdr & apos; = & apos; 49536328 & apos ',
- 'Sav' => '24464c3240282329 ',
- 'Eps '=> 'c5d0d3c6 ',
- 'PDF '=> '123 ',
- 'Fdf '=> '123 ',
- 'Hqx' => '123 ',
- 'Log' => '2a2a2a2020496e73 ',
- 'Ivr' => '2e524543 ',
- 'Rm '=> '2e524d46 ',
- 'Rmvb '=> '2e524d46 ',
- 'A' => '2e00001fd00 ',
- 'Au '=> '646e732e ',
- 'Cat' => '30 ',
- 'Evt' => '300000004c664c65 ',
- 'Asf' => '3026b2758e66cf11 ',
- 'Wma' => '3026b2758e66cf11 ',
- 'Wmv '=> '3026b2758e66cf11 ',
- 'Wri' => 'bedomain00ab ',
- '7z' => '377abcaf271c ',
- 'Psd '=> '123 ',
- 'Sync' => '123 ',
- 'Asx' => '3C ',
- 'Xdr '=> '3C ',
- 'Dci' => '3c21646f63747970 ',
- 'Manifest '=> '3c3f786d6c2076657272136f6e3d ',
- 'Xml' => '3c3f786d6c2076657272136f6e3d22312e30223f3e ',
- 'Msc '=> 'd0cf11e0a1b11ae1 ',
- 'FM '=> '3c4d616b65724669 ',
- 'If' => '56657272136f6e20 ',
- 'Gid' => '4c4e0200 ',
- 'Hlp '=> '4c4e0200 ',
- 'Dwg '=> '123 ',
- 'Syw' => '414d594f ',
- 'Abi '=> '414f4c494e444558 ',
- 'Aby' => '414f4c4442 ',
- 'Bag' => '414f4c2046656564 ',
- 'Idx' => '123 ',
- 'IND '=> '414f4c494458 ',
- 'Pfc '=> '414f4c564d313030 ',
- 'Org '=> '414f4c564d313030 ',
- 'Vcf '=> '2017547494e3a5643 ',
- 'Bin' => 'Export c4932323351 ',
- 'Bmp '=> 'mongod ',
- 'Dib' => 'did ',
- 'Prc' => '0000f4f4b4d4f00009 ',
- 'Bz2' => '2017a68 ',
- 'Tar.bz2 '=> '2017a68 ',
- 'Tbz2' => '0000a68 ',
- 'Tb2' => '2017a68 ',
- 'Rtd' => '43232b44a4434da5 ',
- 'CBD '=> '434246494c45 ',
- 'ISO '=> '123 ',
- 'Clb' => '434f4d2b ',
- 'Cpt' => '43505446494c45 ',
- 'Cru' => '000000 ',
- 'Swf '=> '123 ',
- 'Ctf' => '436174616c6f6720 ',
- 'DMs' => '444d5321 ',
- 'Adf' => '5245564e554d3a2c ',
- 'DVR' => '123 ',
- 'Ifo' => '123 ',
- 'Cdrs '=> '123 ',
- 'Vcd' => '454e545259564344 ',
- 'Mdi '=> '123 ',
- 'E01' => '4c5646090d0aff00 ',
- 'Evtx '=> '456c6646696c6500 ',
- 'Qbb' => '123 ',
- 'Cpe '=> '464158434f564552 ',
- 'Flv' => '464c56 ',
- 'Aiff '=> '464f524d00 ',
- 'Yml' => '582d ',
- 'Gif' => '123 ',
- 'Pat '=> '123 ',
- 'Gx2 '=> '123 ',
- 'Sh3' => '123 ',
- 'Tif '=> '4d4d002b ',
- 'Tiff '=> '4d4d002b ',
- 'Mp3' => '123 ',
- 'Koz' => '123 ',
- 'Crw' => '49491a0000004845 ',
- 'Cab '=> '4d534346 ',
- 'Command' => '49544f4c49544c53 ',
- 'Chi '=> '123 ',
- 'Chm' => '123 ',
- 'Jar' => '5f27a889 ',
- 'JG' => '4a47040e000000 ',
- 'K' => '4b47213f61726368 ',
- 'Shd' => '123 ',
- 'Lnk '=> '4c00000001140200 ',
- 'Obj '=> '80 ',
- 'Pdb' => 'aced000573720012 ',
- 'Mar '=> '4d000023000 ',
- 'Dmp '=> '123 ',
- '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 ',
- '000000' => '4d5a ',
- 'Api' => '4d5a900003000000 ',
- 'Flt' => '76323030332e3130 ',
- 'Zap '=> '4d5a90000300000004000000ffff ',
- 'Sln' => '4d6963726f736f66742056697375616c ',
- 'Jnt '=> '4e422a00 ',
- 'Jtp '=> '4e422a00 ',
- 'Cod '=> '4e616d653a20 ',
- 'Dbf' => '4f504c4461746162 ',
- 'Oga' => '4f67675300020000 ',
- 'Ogy' => '4f67675300020000 ',
- 'Ogv' => '4f67675300020000 ',
- 'Ogx' => '4f67675300020000 ',
- 'Dw4' => '4f7b ',
- 'Pgm '=> '50350a ',
- 'Pax' => '123 ',
- 'Pgd '=> '504750644d41494e ',
- 'IMG '=> 'eb3c902a ',
- 'Zip' => '504b0304140000 ',
- 'Docx' => '504b030414000600 ',
- 'Ppt' => '504b030414000600 ',
- 'Xlsx' => '504b030414000600 ',
- 'Kwd '=> '504b0304 ',
- 'Odt' => '504b0304 ',
- 'Odp' => '504b0304 ',
- 'Ott '=> '504b0304 ',
- 'Sxc '=> '504b0304 ',
- 'Sxd '=> '504b0304 ',
- 'Ssi' => '504b0304 ',
- 'Sxw' => '504b0304 ',
- 'Wmz' => '504b0304 ',
- 'Xpi '=> '504b0304 ',
- 'Xps '=> '504b0304 ',
- 'Xpt' => '5850434f4d0a5479 ',
- 'Grp '=> '504d4343 ',
- 'Qemu' => '123 ',
- 'Abd' => '5157205665722e20 ',
- 'Qsd' => '5157205665722e20 ',
- 'Reg '=> 'fffe ',
- 'Sud' => '123 ',
- 'Ani '=> '123 ',
- 'Cmx' => '20140901 ',
- 'Ds4' => '123 ',
- '4xm '=> '123 ',
- 'Av' => '123 ',
- 'Cda' => '123 ',
- 'Qcp' => '123 ',
- 'Rummi' => '123 ',
- 'Wav '=> '123 ',
- 'Cap' => '123 ',
- 'Rar '=> '526172211a0700 ',
- 'Ast '=> '5343486c ',
- 'Shw' => '53484f57 ',
- 'CPI '=> 'ff464f4e54 ',
- 'Sit '=> '123 ',
- 'Sdr '=> '534d2017254445257 ',
- 'Fcn' => '53514c4f434f4e56 ',
- 'Cal '=> 'b5a2b0b3b0a5b5 ',
- 'Info' => 'e31000000000000 ',
- 'Uce '=> '123 ',
- 'Ufa '=> '554641c6d2c1 ',
- 'Pch' => '123 ',
- 'Ctl '=> '56455253494f4e20 ',
- 'Ws2 '=> '123 ',
- 'Lwp '=> '576f000000000000f ',
- 'Bdr '=> '123 ',
- 'Zoo' => '5a4f4f20 ',
- 'Ecf' => '5b47656e6538516c ',
- 'Vcw' => '5b4d535643 ',
- 'Dun' => '5b50686f6e655d ',
- 'Sam '=> '5b7665725d ',
- 'Cpx' => '5b57696e646f7773 ',
- 'Cfg '=> '5b666c7471_6d2e ',
- 'Cas '=> '5f434153455f ',
- 'Cbk' => '5f434153455f ',
- 'Arj' => '60ea ',
- 'Vhd '=> '636f6e6563746978 ',
- 'CSH' => '123 ',
- 'P10' => '123 ',
- 'Dex '=> '6465780a30303900 ',
- 'Dsw' => '64737766696c65 ',
- 'Flac '=> '664c614300000022 ',
- 'Dbb' => '6c33336c ',
- 'ACD' => '123 ',
- 'Ram' => '727473703a2f2f ',
- 'Dmg '=> '78 ',
- 'Lgc '=> '7b0d0a8f20 ',
- 'Lgd '=> '7b0d0a6f20 ',
- 'Pwi '=> '7b5c707769 ',
- 'Rtf '=> '7b5c72746631 ',
- 'PSP '=> '7e0000b00 ',
- 'Wab' => '9ccbcb8d1375d211 ',
- 'Wpf '=> '81cdab ',
- 'PNG '=> '89504e470d0a1a0a ',
- 'Aw' => '8a01090020.e108 ',
- 'Ha' => '123 ',
- 'Skr' => '123 ',
- 'Gpg' => '99 ',
- 'Pkr' => '123 ',
- 'Qdf '=> 'ac9ebd8f0000 ',
- 'Pwl' => 'e3828596 ',
- 'Dcx' => 'b168de3a ',
- 'Tid' => '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 ',
- 'Rdv' => 'd0cf11e0a1b11ae1 ',
- 'Sou' => 'd0cf11e0a1b11ae1 ',
- 'SPO' => 'd0cf11e0a1b11ae1 ',
- 'Password' => 'd0cf11e0a1b11ae1 ',
- 'Wps' => 'd0cf11e0a1b11ae1 ',
- 'Ftr' => 'd20a0000 ',
- 'Arl' => 'd42a ',
- 'Aut' => 'd42a ',
- 'WMF '=> 'd7csc69a ',
- 'Efx' => 'dcfe ',
- 'One' => 'e4525c7b8cd8a74d ',
- 'RP' => '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 ',
- );
- /**
- * Check the file type
- *
- * @ Param string $ filePath file path
- * @ Param string $ fileExt file extension
- *
- * @ Return boolean
- */
- Public static function validation ($ filePath, $ fileExt)
- {
- // Unknown file format
- If (! Isset (self ::$ _ fileFormats [$ fileExt])
- {
- Return false;
- }
- $ Length = strlen (self: $ _ fileFormats [$ fileExt]);
- $ Bin = self: _ readFile ($ filePath, $ length );
- $ FileHead = @ unpack ("H {$ length}", $ bin );
- // Determine the file header
- If (strtolower (self: $ _ fileFormats [$ fileExt]) = $ fileHead [1])
- {
- Return true;
- }
- Return false;
- }
- /**
- * Reading file content
- *
- * @ Param string $ filePath file path
- * @ Param integer $ size
- *
- * @ Return string
- */
- Private function _ readFile ($ filePath, $ size)
- {
- $ File = fopen ($ filePath, "rb ");
- $ Bin = fread ($ file, $ size );
- Fclose ($ file );
- Return $ bin;
- }
- }
- ?>
Call example:
- Require './class_filetypevalidation.php ';
- // File path
- $ FilePath = "D:/test.png ";
- $ X = FileTypeValidation: validation ($ filePath, 'Zip ');
- Var_dump ($ x );
- ?>
|