程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP取二進制文件頭快速判斷文件類型

PHP取二進制文件頭快速判斷文件類型

編輯:關於PHP編程

一般我們都是按照文件擴展名來判斷文件類型,但是這個很不靠譜,輕易就通過修改擴展名來躲避了,一般必須要讀取文件信息來識別。

<?php

$files = array('./test.jpg', 'test.png');
$fileTypes = array(
    7790    => 'exe',
    7784    => 'midi',
    8075    => 'zip',
    8297    => 'rar',
    225216  => 'jpg',
    7173    => 'gif',
    6677    => 'bmp',
    13780   => 'png',
);
foreach($files as $file) {
    $fp = fopen($file, 'rb');
    $bin = fread($fp, 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> code : <b>', $fileType, '</b><br />';
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved