欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

图片检测 - PHP判断真实图片

程序员文章站 2022-06-15 11:23:13
...
系统会定时从一些站点的指定目录获取图片,这些图片不一定存在。

那么问题来了:各站点由于Web服务器和其配置大不相同,可能存在以下几种情况:

1.图片存在,返回 200 - OK ;
2.图片不存在,返回 404 - Not Found ;
3.图片存在,但是可能由于防火墙等原因,返回的不一定为图片信息;
4.图片不存在,但是可能由于安全狗等原因,返回的是状态码为 200,页面内容中包含或不包含 404 字样;

那么,有没有一种方法可以判断字符串是否为真实的图片?

回复内容:

系统会定时从一些站点的指定目录获取图片,这些图片不一定存在。

那么问题来了:各站点由于Web服务器和其配置大不相同,可能存在以下几种情况:

1.图片存在,返回 200 - OK ;
2.图片不存在,返回 404 - Not Found ;
3.图片存在,但是可能由于防火墙等原因,返回的不一定为图片信息;
4.图片不存在,但是可能由于安全狗等原因,返回的是状态码为 200,页面内容中包含或不包含 404 字样;

那么,有没有一种方法可以判断字符串是否为真实的图片?

array getimagesize ( string $filename [, array &$imageinfo ] )

可以使用getimagesize()函数,如果不能访问 filename 指定的图像或者其不是有效的图像,getimagesize() 将返回 FALSE 并产生一条 E_WARNING 级的错误。

getimagesize — 取得图像大小
文档地址:http://php.net/manual/zh/function.getimagesize.php

你可以尝试一下:

print_r(exif_imagetype("http://www.baidu.com/img/baidu_jgylogo3.gif"));

以下是图像类型常量:
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II(Intel 字节顺序)
8 IMAGETYPE_TIFF_MM(Motorola 字节顺序)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM

相关标签: php 图片检测