php判断文件是不是图片的方法:1、利用getimagesize函数获取图片信息,然后进行判断;2、读取图片的前2个字节,然后进行判断;3、利用exif_imagetype函数实现判断。
推荐:《php视频教程》
用PHP判断文件是否为图片的方法
最近在工作中遇到一个需要,要判断一个文件是否为图片的功能,通过查找相关的资料找到了几种方法,包括利用getimagesize函数获取图片信息,然后进行判断或读取图片的前2个字节等方法。
前言
立即学习“PHP免费学习笔记(深入)”;
在网页设计中,如果需要图片,我们通常拿到的是一个图片的文件名。仅仅通过文件名是无法判断该文件是否是一个图片文件的。或许有的人以为通过后缀名就可以判断,别忘了文件的后缀名是可以随便改动的。更何况,在 Linux 系统下是不以后缀来区分文件格式的。如果天真的以为通过后缀名就能区分图片,那可能出现错误时,你连错误在哪儿都不知道。比如有一个讨厌的人把一个文本文件改成 background.jpg,然后给你用,你可能只会简单的认为这个图片被损坏了,万万没想到它竟然仅仅是一个文本文件。
为了避免一些不必要的问题出现,在拿到一个图片时,应该正确的判断该文件是否真的一个图片文件。这里总结了三种判断方法,有需要的朋友们可以一起来看看吧。
方法一
利用 getimagesize 函数获取图片信息,然后进行判断:
登录后复制
方法二
读取图片的前 2 个字节,然后判断是不是图片:
登录后复制
方法三
最后一种方法是利用 exif_imagetype 函数,该函数用于判断一个图像的类型,采用这种方法更加简单。读取一个图像的第一个字节并检查其签名。 如果发现了恰当的签名则返回一个对应的常量,否则返回 FALSE。返回值和 getimagesize() 返回的数组中的索引 2 的值是一样的,但该函数要快得多。
该函数的返回值常量定义如下:
1 IMAGETYPE_GIF2 IMAGETYPE_JPEG3 IMAGETYPE_PNG4 IMAGETYPE_SWF5 IMAGETYPE_PSD6 IMAGETYPE_BMP7 IMAGETYPE_TIFF_II(Intel 字节顺序)8 IMAGETYPE_TIFF_MM(Motorola 字节顺序)9 IMAGETYPE_JPC10 IMAGETYPE_JP211 IMAGETYPE_JPX12 IMAGETYPE_JB213 IMAGETYPE_SWC14 IMAGETYPE_IFF15 IMAGETYPE_WBMP16 IMAGETYPE_XBM
登录后复制
示例:
登录后复制
以上就是php如何判断文件是不是图片的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2121739.html