Heim >Backend-Entwicklung >PHP-Tutorial >图片检测 - PHP判断真实图片

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

WBOY
WBOYOriginal
2016-06-06 20:22:311431Durchsuche

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

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn