Heim > Backend-Entwicklung > PHP-Tutorial > Wie lade ich große Dateien mit Curl herunter, ohne die Speichergrenzen zu überschreiten?

Wie lade ich große Dateien mit Curl herunter, ohne die Speichergrenzen zu überschreiten?

Barbara Streisand
Freigeben: 2024-12-15 08:42:11
Original
920 Leute haben es durchsucht

How to Download Large Files with Curl Without Exceeding Memory Limits?

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

In diesem Code sind die folgenden Änderungen entscheidend:

  • curl_setopt($ch, CURLOPT_FILE, $fp); Gibt die Zieldatei für den Download an und ermöglicht das direkte Streaming auf die Festplatte.
  • curl_setopt($ch, CURLOPT_TIMEOUT, 600); stellt ausreichend Zeit für das Herunterladen großer Dateien sicher.
  • set_time_limit(0); verhindert vorzeitige Beendigung aufgrund von Server-Timeouts.

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!

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