php如何判断文件是不是图片

php判断文件是不是图片的方法:1、利用getimagesize函数获取图片信息,然后进行判断;2、读取图片的前2个字节,然后进行判断;3、利用exif_imagetype函数实现判断。

php如何判断文件是不是图片

推荐:《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

(0)
上一篇 2025年2月24日 19:06:34
下一篇 2025年2月24日 19:06:50

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • HTML5中classList属性

    [导读] 前面为大家介绍了一些有关html5新添加的选择器,分别是queryselector(),queryselectorall()和getelementsbyclassname()。这三个都有自己独特的功能,大家有需要的话可以看html…

    2025年4月1日 编程技术
    100
  • html5中文本框输入去除内容提示

    [导读] 下面来介绍基于html5 input标签的新特性 – placeholder 实现在文本框输入内容提示消失效果,有需要的朋友可参考。例1  代码如下复制代码     <input type="email…

    编程技术 2025年4月1日
    100
  • HTML5实现时钟效果

    [导读]   代码如下复制代码    以下是完整代码,保存到html文件可以查看效果。 html5时钟 代码如下复制代码 以下是完整代码,保存到html文件可以查看效果。 HTML5时钟-柯乐义 柯乐义 原文 HTML5时钟 柯乐义提示您,…

    编程技术 2025年4月1日
    100
  • html5在输入框添加语音输入功能

    [导读] 这里介绍的是大家以后要用到的html强大功能,可直接给输入框增加语音功能,下面我们先来看看实现方法。大家可以看到在输入框右边的麦克风图标,点击麦克风就能够进行语音识别了其实很简单,语音识别是html5的基 这里介绍的是大家以后要用…

    2025年4月1日
    100
  • html5入门之设计原理解析

    [导读] 本文章是来源于alimama的ued的一篇关于设计理念的文章,主要是讲目前开始浏览的html5入门之设计原理,有需要的朋友可以参考一下哦。html5和css3的时代到来了,新版2011版淘宝网首页已全部使用html5,拥抱变化才 …

    编程技术 2025年4月1日
    100
  • html5+php如何实现文件拖动上传功能

    [导读] 本文章介绍了关于在html5中实现文件上传的功能介绍,有需要的同学可以参考一下下哈。  界面样式我是参考了一个国外的相册网站,改动不大,只是把鸟语转换成中文,以及上传时的样式也进行了改动,之所以选这个 本文章介绍了关于在html5…

    2025年4月1日
    100
  • html5视频与声频详解

    [导读] html5视频video与声频audio详解 在html5中出现了一些新特性:canvas 元素视频 video 和 声频audio 元素 ;对本地离线存储(localstorage,sessionstorage)的支持 ;新增特…

    编程技术 2025年4月1日
    100
  • jquery 遍历parent()方法

    [导读] jquery a遍历节点-parent()方法 parent([selector])方法返回的是每一个匹配的元素的父元素的集合。这里selector是可选参数,是用于过滤父元素的选择器表达式。html代码: jquery a遍历节…

    编程技术 2025年4月1日
    100
  • linux下HTML5用户及用户组管理命令详解

    [导读] 分享一篇在linux系统中权限的管理的操作文件,我们来介绍一下关于linux 用户及用户组管理命令详解,有需要的朋友可以参考一下本文章。1  useradduseradd 命令可以创建一个新的用户帐号,其最基本用法为:usera …

    编程技术 2025年4月1日
    100
  • html5+JavaScript进行邮箱地址验证

    nbsp;html>html5 网页特效 邮箱地址验证body, input, textarea { font-family: “helvetica”, arial, helvetica;}label { display: block…

    编程技术 2025年4月1日
    100

发表回复

登录后才能评论