您好,欢迎访问一九零五行业门户网

php检测文件类型(根据文件header信息)_PHP教程

文章提供一款php检测文件类型(根据文件header信息)哦,他可以根据用户发布的文件头部信息来确实文件的类型。
文章提供一款php教程检测文件类型(根据文件header信息)哦,他可以根据用户发布的文件头部信息来确实文件的类型。
gettypelist();
}
/**
*处理文件类型映射关系表*
*
* @param string $filename 文件类型
* @return string 文件类型,没有找到返回:other
*/
private function _getfiletype($filename)
{
$filetype=other;
if(!file_exists($filename)) throw new exception(no found file!);
$file = @fopen($filename,rb);
if(!$file) throw new exception(file refuse!);
$bin = fread($file, 15); //只读15字节 各个不同文件类型,头信息不一样。
fclose($file);
$typelist=self::$_typelist;
foreach ($typelist as $v)
{
$blen=strlen(pack(h*,$v[0])); //得到文件头标记字节数
$tbin=substr($bin,0,intval($blen)); ///需要比较文件头长度
if(strtolower($v[0])==strtolower(array_shift(unpack(h*,$tbin))))
{
return $v[1];
}
}
return $filetype;
}
/**
*得到文件头与文件类型映射表*
*
* @return array array(array('key',value)...)
*/
public function gettypelist()
{
return array(array(ffd8ffe1,jpg),
array(89504e47,png),
array(47494638,gif),
array(49492a00,tif),
array(424d,bmp),
array(41433130,dwg),
array(38425053,ps教程d),
array(7b5c727466,rtf),
array(3c3f786d6c,xml),
array(68746d6c3e,html),
array(44656c69766572792d646174,eml),
array(cfad12fec5fd746f,dbx),
array(2142444e,pst),
array(d0cf11e0,xls/doc),
array(5374616e64617264204a,mdb),
array(ff575043,wpd),
array(252150532d41646f6265,eps/ps),
array(255044462d312e,pdf),
array(e3828596,pwl),
array(504b0304,zip),
array(52617221,rar),
array(57415645,wav),
array(41564920,avi),
array(2e7261fd,ram),
array(2e524d46,rm),
array(000001ba,mpg),
array(000001b3,mpg),
array(6d6f6f76,mov),
array(3026b2758e66cf11,asf),
array(4d546864,mid));
}
public static function getfiletype($filename)
{
if(!self::$checkclass) self::$checkclass=new self($filename);
$class=self::$checkclass;
return $class->_getfiletype($filename);
}
}
http://www.bkjia.com/phpjc/444834.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/444834.htmltecharticle文章提供一款php检测文件类型(根据文件header信息)哦,他可以根据用户发布的文件头部信息来确实文件的类型。 文章提供一款php教程检测文...
其它类似信息

推荐信息