PHP获取图片类型最佳综合函数

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP获取图片类型最佳综合函数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP获取图片类型最佳综合函数》要点:
本文介绍了PHP获取图片类型最佳综合函数,希望对您有用。如果有疑问,可以联系我们。

大家知道,以前,获取PHP图片类型,基本都是使用这个函数getimagesize()。但是在微信时代,对于微信图片,采集过来的图片,后缀是jPEg,实际是却是webp,

这样类型的图片不能用getimagesize函数获取图片信息。那有什么其它办法?

我们先来分析几个获取图片函数

1、finfo() 函数,这个函数需要fileinfo扩展。需要用fileinfo扩展。一般会取得“image/webp; charset=binary”信息。需要注意的是,上面说的webp就可以用它来分析。但是因为需要扩展组件才可以,所以你的服务器不一定能支持。但PHP5.3以上可能都有安装,所以还是挺普遍的。它的用法如:

$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
#或用类的方式:
$fi = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $fi->file($filename);

2、getimagesize函数:这个就不说了吧,老古董了。返回图片各种信息。

3、exif_imagetype(string filename)判断一个图像的类型,返回值和 getimagesize() 返回的数组中的索引 2 的值是一样的,但本函数快得多。 但本函数需要打开Exif扩展。不过,这个只是获取类型,还需要转化才能得到MIME。排除吧。

4、mime_content_type('a.jpg')函数判断获取MIME类型,此函数已被丢弃,不能使用了。

5、使用自定义函数,其实是从一堆已有的MIME列表中选一个方法

上面每个都各有所长,我们就整合一起吧,目的是为了跨平台应用,不致于程序换个系统就挂了。所以,兼容性很重要

下面通用函数中,VEPHP_RESOURCE是编程之家站全局路径常量,需要换成你自己的路径。

/**
 * 获取mime跨平台函数
 * 来:http://www.js-code.COM  编程之家学院,
 * 分享请保持网址。尊重别人劳动成果。谢谢。 *
 * @param $filename 图片名
 */
function get_mime_type($filename)
{
       if(class_exists('finfo')){
              $fi = new finfo(FILEINFO_MIME_TYPE);
              $mime_type = $fi->file($filename);
              return $mime_type;
       }
       $fileext = strtolower(trim(strrchr($filename,'.'), '.'));
       if(in_array($fileext, ['jpg','jpeg','png','gif','bmp'])){
              $picInfo =  getimagesize($filename);
              return $picInfo[';mime'];
              #return image_type_to_mime_type(exif_imagetype($filename));
       }
       if (empty($fileext)) return false;
       $regex = "/^([\w\+\-\.\/]+)\s+(\w+\s)*($fileext\s)/i";
       $lines = file(VEPHP_RESOURCE."dict/mime.types");
       foreach($lines as $line) {
              if (substr($line, 0, 1) == '#') continue;
              $line = rtrim($line) . " ";
              if (!PReg_match($regex, $line, $matches)) continue;
              return ($matches[1]);
       }
       return (false); // no match at all
}

函数中用到的MIME文件下载地址:

http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types 

脚本宝典总结

以上是脚本宝典为你收集整理的PHP获取图片类型最佳综合函数全部内容,希望文章能够帮你解决PHP获取图片类型最佳综合函数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。