php下載圖片無法開啟的解決方法:1、設定「file_put_contents('E:/img/xxx.jpeg',$img);」程式碼語句;2、在curl裡新增「curl_setopt($ ci,...)”語句即可。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php 下載圖片無法開啟怎麼辦?
解決PHP curl或file_get_contents下載圖片損壞或無法開啟的問題
透過curl或file_get_contents取得抓取遠端圖片並且儲存到本機,發現損壞了很多圖片,例如訪問
https://fuss10.elemecdn.com/c/6c/69a7740b4ab864ac0639eb583d68fjpeg.jpeg
是可以存取到圖片的,但是curl或file_get_contents時圖片下載下來了卻損壞了,
原因是圖片被gizp了
解決方法一:
$url = 'https://fuss10.elemecdn.com/c/6c/69a7740b4ab864ac0639eb583d68fjpeg.jpeg'; $img = file_get_contents("compress.zlib://".$url); $data = file_put_contents('E:/img/aaaaaaaaaaaa.jpeg',$img);
#解決方法二:
在curl裡加上這段程式碼
curl_setopt($ci, CURLOPT_ENCODING,'gzip');
相關介紹:
PHP cURL 函數
PHP支援的由Daniel Stenberg創建的libcurl函式庫允許你與各種的伺服器使用各種類型的協定進行連接和通訊。
libcurl目前支援http、https、ftp、gopher、telnet、dict、file和ldap協定。 libcurl同時也支援HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能透過PHP的FTP擴充完成)、HTTP 基於表單的上傳、代理、cookies和使用者名稱 密碼的認證。
PHP中使用cURL實作Get和Post請求的方法
這些函數在PHP 4.0.2中被引入。
安裝
要使用PHP的cURL支援你必須在編譯PHP時加上--with-curl[=DIR] 選項,DIR為包含lib和include的目錄路徑。在include目錄中必須有一個名為curl,包含了easy.h和curl.h的資料夾。 lib資料夾裡應該有一個名為libcurl.a的檔案。對於PHP 4.3.0你可以設定--with-curlwrappers 使cURL使用URL流。
注意: Win32用戶注意 要在Windows環境下使用這個模組,libeay32.dll和ssleay32.dll必須放到PATH環境變數包含的目錄下。不用cURL網站上的libcurl.dll。
推薦學習:《PHP影片教學》
以上是php 下載圖片無法開啟怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!