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識別。