/*文件擴展名說明 *7173 gif *255216 jpg *13780 png *6677 bmp *239187 txt,aspx,asp,sql *208207 xls.doc.ppt *6063 xml *6033 htm,html *4742 js *8075 xlsx,zip,pptx,mmap,zip *8297 rar *01 accdb,mdb *7790 exe,dll *5666 psd *255254 rdp *10056 bt種子 *64101 bat */ /*PHP取二進制文件頭快速判斷文件類型*/ $files = array( 'c:\1.jpg', 'c:\1.png', 'c:\1.gif', 'c:\1.rar', 'c:\1.zip', 'c:\1.exe', ); foreach ($files AS $file) { $fp = fopen($file, "rb"); $bin = fread($fp, 2); //只讀2字節 fclose($fp); // unpack() 函數從二進制字符串對數據進行解包 $str_info = @unpack("C2chars", $bin); // intval() 函數用於獲取變量的整數值 $type_code = intval($str_info['chars1'].$str_info['chars2']); $file_type = ''; // 下面將解析后獲取的狀態值進行判斷 switch ($type_code) { case 7790: $file_type = 'exe'; break; case 7784: $file_type = 'midi'; break; case 8075: $file_type = 'zip'; break; case 8297: $file_type = 'rar'; break; case 255216: $file_type = 'jpg'; break; case 7173: $file_type = 'gif'; break; case 6677: $file_type = 'bmp'; break; case 13780: $file_type = 'png'; break; default: $file_type = 'unknown'; break; } // 輸出文件對應的類型和狀態值 echo $file , ' type: <b>', $file_type, '</b> code:<b>', $type_code, '</b><br />'; }