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
Lepaskan: 2024-12-01 02:23:13
asal
861 orang telah melayarinya

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);
Salin selepas log masuk

Isu dan Penyelesaian:

  1. Laluan Fail Salah:

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

      $savefile = fopen('img/uploads/' . $iconfilename, 'w');
      Salin selepas log masuk
  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);
      Salin selepas log masuk
  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);
      }
      Salin selepas log masuk

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);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan