Mengendalikan Muat Turun Fail Besar dengan Curl: Menstriman ke Cakera
Memuat turun fail besar menggunakan curl boleh menjadi mencabar kerana kekangan memori. Kaedah tradisional, yang membaca keseluruhan fail ke dalam ingatan sebelum menulisnya ke cakera, boleh menyebabkan masalah prestasi. Untuk mengatasi had ini, pertimbangkan untuk menstrim fail terus ke cakera.
Berikut ialah penyelesaian yang menggunakan fungsi curl_setopt() untuk mengkonfigurasi pilihan CURLOPT_FILE. Pilihan ini menentukan penuding fail di mana curl boleh menulis data yang dimuat turun secara terus:
set_time_limit(0); // Disable PHP time limit // Open a file for writing $fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+'); // Initialize curl $ch = curl_init(str_replace(" ", "%20", $url)); // Set timeout to a high value curl_setopt($ch, CURLOPT_TIMEOUT, 600); // Write curl response to file curl_setopt($ch, CURLOPT_FILE, $fp); // Follow any redirects curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Execute curl curl_exec($ch); // Close curl and file handlers curl_close($ch); fclose($fp);
Dalam kod yang dipertingkat ini:
Dengan menggunakan teknik ini, curl boleh menstrim data yang dimuat turun terus ke cakera, memintas kekangan memori dan membolehkan pengendalian besar yang cekap fail.
Atas ialah kandungan terperinci Bagaimanakah Curl Stream Muat Turun Fail Besar Terus ke Cakera untuk Mengelakkan Isu Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!