Große Dateien mit Curl ohne Speicherüberlastung herunterladen
Beim Herunterladen großer Remote-Dateien mit cURL ist das Standardverhalten das Einlesen der gesamten Datei in den Speicher kann insbesondere bei umfangreichen Daten problematisch werden. Um dieser Herausforderung zu begegnen, sollten Sie den folgenden optimierten Ansatz in Betracht ziehen:
Anstatt die heruntergeladene Datei in den Speicher einzulesen, können wir sie mit dem folgenden modifizierten Code direkt auf die Festplatte streamen:
<?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); ?>
Dieser Code Das Snippet initialisiert cURL, legt ein entsprechendes Timeout fest und konfiguriert es so, dass die Antwort direkt in die angegebene Datei geschrieben wird, anstatt sie in den Speicher zu laden. Durch das Streamen des Downloads auf die Festplatte können Sie den Speicherverbrauch bei der Verarbeitung großer Dateien erheblich reduzieren.
Das obige ist der detaillierte Inhalt vonWie kann ich große Dateien mit Curl ohne Speicherüberlastung herunterladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!