|
下面代碼就展示了自己通過讀取文件頭信息來識別文件的真實類型。
復制代碼 代碼如下:
<?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);
$str_info = @unpack("C2chars", $bin);
$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 />';
}
本例輸出結果
c:/1.jpg type: jpg code:255216
c:/1.png type: png code:13780
c:/1.gif type: gif code:7173
c:/1.rar type: rar code:8297
c:/1.zip type: zip code:8075
c:/1.exe type: exe code:7790
php技術:PHP取二進制文件頭快速判斷文件類型的實現代碼,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。