php 设置返回的类型是图片,PHP检查上传的图片并返回图片的真正类型【扩展名】...

$file = @fopen('包含路径的文件名', "rb");

$bin = fread($file, 15); //只读15字节 各个不同文件类型,头信息不一样。

$flag = get_type_list($bin);

if(!empty($flag)) {

echo $flag;

}

else{

echo '不存在';

}

/**

* 得到文件头与文件类型映射表*

* author wengxianhu

* @param $bin string 图片的二进制前一段字符

* @return boolean

*/

public function get_type_list($bin)

{

$flag = '';

$array = array(

array("FFD8FFE1","jpg"),

array("89504E47","png"),

array("47494638","gif"),

array("FFD8FFE000104A46", "jpeg")

// array("49492A00","tif"),

// array("424D","bmp"),

// array("41433130","dwg"),

// array("38425053","psd"),

// 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"),

// array("D3C3BBA7", 'csv')

);

foreach ($array as $v)

{

$blen = strlen(pack("H*", $v[0])); //得到文件头标记字节数

$tbin = substr($bin, 0, intval($blen)); ///需要比较文件头长度

if(strtolower($v[0]) == strtolower(array_shift(unpack("H*", $tbin))))

{

$flag = $v[1];

break;

}

}

return $flag;

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值