透過 CURL PHP 下載影像檔案
要從 URL 取得和儲存影像文件,CURL PHP 提供了一個方便的解決方案。但是,某些編碼問題可能會阻礙您的嘗試。讓我們來分析這段程式碼:
function GetImageFromUrl($link) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_URL, $link); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); return $result; } $sourcecode = GetImageFromUrl($iticon); $savefile = fopen(' /img/uploads/' . $iconfilename, 'w'); fwrite($savefile, $sourcecode); fclose($savefile);
問題和解決方案:
不正確的檔案路徑:
檔案保存語句路徑中錯誤地包含空格 (' ')。將其替換為:
$savefile = fopen('img/uploads/' . $iconfilename, 'w');
缺少的功能:
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
覆蓋現有文件:
if (file_exists($savefile)) { unlink($savefile); }
程式碼會覆寫任何現有的同名檔案。為了避免這種情況,請使用:
function grab_image($url, $saveto) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); $raw = curl_exec($ch); curl_close($ch); if (file_exists($saveto)) { unlink($saveto); } $fp = fopen($saveto, 'x'); fwrite($fp, $raw); fclose($fp); }
最佳化程式碼:最佳化程式碼:最佳化程式碼:最佳化程式碼:最佳程式碼>附加說明:在你的PHP設定檔中(php.ini),確保啟用了allow_url_fopen。
以上是如何在PHP中使用cURL有效率地下載和保存圖片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!