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!