php保存遠程圖片失敗的常見原因及解決方法
許多PHP開發(fā)者在保存遠程圖片時,常常遇到下載成功卻無法打開的問題。本文將通過一個實際案例,分析問題根源并提供解決方案。
問題描述
以下PHP代碼意圖保存一個遠程圖片:
$url = 'https://img.alicdn.com/i3/85764793/o1cn0128vx5s1lhfa4aj2ym_!!85764793.jpg'; file_put_contents('aaa.jpg', $url);
盡管遠程URL可以正常訪問,但生成的aaa.jpg卻無法打開。
問題分析
問題在于file_put_contents函數(shù)的第二個參數(shù)。代碼直接將URL字符串寫入文件,而非圖片二進制數(shù)據(jù)。因此,aaa.jpg中只包含URL文本,導致無法識別為圖片。
立即學習“PHP免費學習筆記(深入)”;
解決方法
正確的做法是先獲取圖片的二進制數(shù)據(jù),再保存到本地。使用file_get_contents函數(shù)獲取遠程文件內(nèi)容:
<?php $url = 'https://img.alicdn.com/i3/85764793/O1CN0128vX5s1lHFA4aj2YM_!!85764793.jpg'; $imageData = file_get_contents($url); file_put_contents('aaa.jpg', $imageData); ?>
file_get_contents獲取圖片數(shù)據(jù)后,file_put_contents將其寫入aaa.jpg,即可正常打開。 這確保了將圖片的二進制數(shù)據(jù),而非URL字符串保存到本地文件。
通過以上分析和改進后的代碼,您可以有效避免PHP保存遠程圖片失敗的問題。 記住,關鍵在于獲取圖片的二進制數(shù)據(jù),而不是直接寫入URL。
? 版權聲明
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關推薦