php getimagesize 获取不到图片信息 在浏览器中却可以正常打开
求解
回复内容: php getimagesize 获取不到图片信息 在浏览器中却可以正常打开
求解
[2015-09-11 15:27:58:428]get /file/4/ee/4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8.jpg http/1.0host: kids.file.putaocdn.com[2015-09-11 15:27:58:477]http/1.0 200 okdate: fri, 11 sep 2015 01:43:19 gmtlast-modified: thu, 27 aug 2015 07:15:26 gmtetag: 4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8content-type: image/jpegcache-control: max-age=30240000content-length: 156202content-encoding: gzipvia: http/1.1 pt-jh-c1 ( [crs f ])server: pt-abage: 1x-via: 1.0 tzh62:8080 (cdn cache server v2.0), 1.0 qxz50:0 (cdn cache server v2.0)connection: close
通过抓包得知, 楼主所请求的这个图片, 对方的服务器, 不按套路出牌, 不管客户端支持不支持gzip解码,
而直接将内容使用gzip压缩之后输出, 所以导致php获取到的数据是经过压缩的,而你没有指定让它解压,
所以把它压缩后的数据当成图片来进行解析, 而这个数据当然不是图片了, 所以就得不到图片的信息了.
使用下面的代码即可:
先检查一下 file_get_contents('http://kids.file.putaocdn.com/file/4/ee/4eee9185e2fc60188b49bacdcc0c65ccfdecf8e8.jpg')
是否能成功。很可能是php设置不能获取远程图片,或者请求时对方屏蔽了php的请求。
如果文件可以成功获取,那把文件保存下来,再次使用getimagesize识别。