Maison >développement back-end >tutoriel php >图片检测 - PHP判断真实图片
系统会定时从一些站点的指定目录获取图片,这些图片不一定存在。
那么问题来了:各站点由于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
你可以尝试一下:
<code>print_r(exif_imagetype("http://www.baidu.com/img/baidu_jgylogo3.gif"));</code>
以下是图像类型常量:
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