Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich große Dateien mit Curl ohne Speicherüberlastung herunterladen?

Wie kann ich große Dateien mit Curl ohne Speicherüberlastung herunterladen?

Mary-Kate Olsen
Freigeben: 2025-01-03 20:18:07
Original
234 Leute haben es durchsucht

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

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);
?>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage