Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Muat Turun Fail Besar dengan Curl Tanpa Sarat Memori?

Bagaimanakah Saya Boleh Muat Turun Fail Besar dengan Curl Tanpa Sarat Memori?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-03 20:18:07327semak imbas

How Can I Download Large Files with Curl Without Memory Overload?

Memuat Turun Fail Besar dengan Curl Tanpa Beban Memori

Apabila memuat turun fail jauh yang besar menggunakan cURL, tingkah laku lalai membaca keseluruhan fail ke dalam memori boleh menjadi masalah, terutamanya untuk data yang luas. Untuk menangani cabaran ini, pertimbangkan pendekatan yang dioptimumkan berikut:

Daripada membaca fail yang dimuat turun ke dalam memori, kami boleh menstrimnya terus ke cakera menggunakan kod yang diubah suai berikut:

<?php
set_time_limit(0);
// Specify the destination file to save the download
$fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+');
// Replace spaces in the URL with %20 for proper handling
$ch = curl_init(str_replace(" ", "%20", $url));
// Set a high timeout value to prevent interruptions while downloading large files
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
// Stream curl response to disk
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Execute the download and close all resources
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

Kod ini coretan memulakan cURL, menetapkan tamat masa yang sesuai dan mengkonfigurasinya untuk menulis respons terus ke fail yang ditentukan dan bukannya memuatkannya ke dalam memori. Dengan menstrim muat turun ke cakera, anda boleh mengurangkan penggunaan memori dengan ketara semasa mengendalikan fail besar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Muat Turun Fail Besar dengan Curl Tanpa Sarat Memori?. 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