>백엔드 개발 >PHP 튜토리얼 >图片检测 - PHP判断真实图片

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

WBOY
WBOY원래의
2016-06-06 20:22:311431검색

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

那么问题来了:各站点由于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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.