代码如下 | 复制代码 |
/*通过文件名,获得文件类型* *@author chengmo* *@copyright cnblog.com/chengmo 2010-10-17 *@version 0.1 *$filename="d:/1.png";echo cfiletypecheck::getfiletype($filename); 打印:png */ class cfiletypecheck { private static $_typelist=array(); private static $checkclass=null; private function __construct($filename) { self::$_typelist=$this->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); } } |
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔