php根据图片内容【魔术数字】,识别图片的类型
php
图片
编程技术
发布日期
2023-03-21
更新日期
2023-05-01
阅读次数 311
文章字数 621
严格模式下,每种文件类型都有一种标识。
指的是文件的最开头的几个用于唯一区别其它文件类型的字节。
例如,jpg类型的图片,前三个字节是xffxd8xff,或者6-10个字节是JFIF或Exif。以及png图片前4个字节是x89PNG,其他类型也是同理。
所以我们手写一个php函数,根据图片的内容,校验校验图片类型,更加安全可靠【比后缀识别要高级的多】。
<?php
//传入的参数,是图片内容字节【例如 file_get_contents,或者 curl 后获取的原始body】
function checkImgType(string $contentStr,$isType="")
{
//检测是否jpg
$head3 = substr($contentStr,0,3);
$head4 = substr($contentStr,0,4);
$head6_10 = substr($contentStr,6,4);
$parseType = "";
//解析类型
if("xffxd8xff"==$head3 || "JFIF"==$head6_10 || "Exif"==$head6_10){
$parseType = "jpg";
}
elseif("x89PNG"==$head4){
$parseType = "png";
}
elseif("GIF"==$head3){
$parseType = "gif";
}
//解析是否该类型?如果不是返回false
if($isType && $parseType!=$isType){
return false;
}
//返回解析到的类型,解析失败则返回""
else{
return $parseType;
}
声明本文为转载,原文地址: https://www.huazstar.net/blog/post-422.html
php
图片
发表评论
相关推荐