首頁 > 後端開發 > php教程 > 如何在PHP中使用cURL有效率地下載和保存圖片?

如何在PHP中使用cURL有效率地下載和保存圖片?

Linda Hamilton
發布: 2024-12-01 02:23:13
原創
858 人瀏覽過

How Can I Efficiently Download and Save Images Using cURL in PHP?

透過 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);
登入後複製

問題和解決方案:

  1. 不正確的檔案路徑:

    • 檔案保存語句路徑中錯誤地包含空格 (' ')。將其替換為:

      $savefile = fopen('img/uploads/' . $iconfilename, 'w');
      登入後複製
  2. 缺少的功能:

    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    登入後複製
  3. 覆蓋現有文件:

    覆蓋現有文件:
    • 覆蓋現有文件:
      if (file_exists($savefile)) {
        unlink($savefile);
      }
      登入後複製
  4. 覆蓋現有文件:

程式碼會覆寫任何現有的同名檔案。為了避免這種情況,請使用:
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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板