>  기사  >  백엔드 개발  >  php getimagesize 获取不到图片信息 在浏览器中却可以正常打开

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

WBOY
WBOY원래의
2016-06-06 20:28:291765검색

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识别。

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