WEB开发网
开发学院WEB开发PHP PHP取二进制文件头快速判断文件类型 阅读

PHP取二进制文件头快速判断文件类型

 2012-10-18 12:02:42 来源:WEB开发网   
核心提示: 一般我们都是按照文件扩展名来判断文件类型,但是这个很不靠谱,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 />';
}

Tags:PHP 二进制 文件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接