Home  >  Article  >  Backend Development  >  php getimagesize 获取不到图片信息 在浏览器中却可以正常打开

php getimagesize 获取不到图片信息 在浏览器中却可以正常打开

WBOY
WBOYOriginal
2016-06-06 20:28:291766browse

php getimagesize 获取不到图片信息 在浏览器中却可以正常打开

<code><?php print_r(getimagesize('http://kids.file.putaocdn.com/file/4/ee/4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8.jpg'));</code></code>

求解

回复内容:

php getimagesize 获取不到图片信息 在浏览器中却可以正常打开

<code><?php print_r(getimagesize('http://kids.file.putaocdn.com/file/4/ee/4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8.jpg'));</code></code>

求解

<code>[2015-09-11 15:27:58:428]
GET /file/4/ee/4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8.jpg HTTP/1.0
Host: kids.file.putaocdn.com


[2015-09-11 15:27:58:477]
HTTP/1.0 200 OK
Date: Fri, 11 Sep 2015 01:43:19 GMT
Last-Modified: Thu, 27 Aug 2015 07:15:26 GMT
ETag: 4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8
Content-Type: image/jpeg
Cache-Control: max-age=30240000
Content-Length: 156202
Content-Encoding: gzip
Via: http/1.1 PT-JH-C1 ( [cRs f ])
Server: PT-AB
Age: 1
X-Via: 1.0 tzh62:8080 (Cdn Cache Server V2.0), 1.0 qxz50:0 (Cdn Cache Server V2.0)
Connection: close</code>

通过抓包得知, 楼主所请求的这个图片, 对方的服务器, 不按套路出牌, 不管客户端支持不支持gzip解码,
而直接将内容使用gzip压缩之后输出, 所以导致PHP获取到的数据是经过压缩的,而你没有指定让它解压,
所以把它压缩后的数据当成图片来进行解析, 而这个数据当然不是图片了, 所以就得不到图片的信息了.

使用下面的代码即可:

<code class="php"><?php var_dump(getimagesize('compress.zlib://http://kids.file.putaocdn.com/file/4/ee/4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8.jpg'));
</code></code>

php getimagesize 获取不到图片信息 在浏览器中却可以正常打开

先检查一下 file_get_contents('http://kids.file.putaocdn.com/file/4/ee/4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8.jpg')

是否能成功。很可能是php设置不能获取远程图片,或者请求时对方屏蔽了php的请求。

如果文件可以成功获取,那把文件保存下来,再次使用getimagesize识别。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn