Große Dateien mit Curl herunterladen: Eine Alternative zum Einlesen in den Speicher
Frage: Wie kann man die Speicherbeschränkungen beim Herunterladen großer Dateien mit überwinden? Curl, das normalerweise in den Speicher liest?
Dieses Problem tritt in Situationen auf, in denen die Dateigröße den verfügbaren Speicher auf dem Server überschreitet. Ein effizienterer Ansatz besteht darin, die Datei direkt auf die Festplatte zu streamen und dabei den Speicher vollständig zu umgehen.
Antwort:
<?php set_time_limit(0); // Set the path to the target file $fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+'); // Exchange spaces with %20 to ensure compatibility with URLs $ch = curl_init(str_replace(" ", "%20", $url)); // Extend the timeout value to accommodate large files curl_setopt($ch, CURLOPT_TIMEOUT, 600); // Directs curl to write response to file curl_setopt($ch, CURLOPT_FILE, $fp); // Automatically follows redirects curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Send request and receive response curl_exec($ch); curl_close($ch); fclose($fp); ?>
In diesem Code sind die folgenden Änderungen entscheidend:
Das obige ist der detaillierte Inhalt vonWie lade ich große Dateien mit Curl herunter, ohne die Speichergrenzen zu überschreiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!