Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Muat Turun dan Simpan Imej Dengan Cekap Menggunakan cURL dalam PHP?

Bagaimanakah Saya Boleh Muat Turun dan Simpan Imej Dengan Cekap Menggunakan cURL dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 02:23:13866semak imbas

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

Memuat turun Fail Imej melalui CURL PHP

Untuk mengambil dan menyimpan fail imej daripada URL, CURL PHP menawarkan penyelesaian yang mudah. Walau bagaimanapun, isu pengekodan tertentu boleh menghalang percubaan anda. Mari kita rungkai coretan kod ini:

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);

Isu dan Penyelesaian:

  1. Laluan Fail Salah:

    • Pernyataan menyimpan fail tidak betul mengandungi ruang (' ') dalam laluan. Gantikannya dengan:

      $savefile = fopen('img/uploads/' . $iconfilename, 'w');
  2. Kehilangan Fungsi:

    • Kod mengambil imej tetapi tidak mengambil kira data binari. Untuk memastikan penjimatan imej yang betul, tambah:

      curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
  3. Menulis Ganti Fail Sedia Ada:

    • Kod tersebut menimpa mana-mana fail sedia ada dengan nama yang sama. Untuk mengelakkan perkara ini, gunakan:

      if (file_exists($savefile)) {
        unlink($savefile);
      }

Kod Dioptimumkan:

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);
}

Nota Tambahan :

Dalam fail konfigurasi PHP anda (php.ini), pastikan bahawa allow_url_fopen didayakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Muat Turun dan Simpan Imej Dengan Cekap Menggunakan cURL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn