Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich große Dateien von URLs in PHP herunterladen, ohne dass der Speicher erschöpft ist?

Wie kann ich große Dateien von URLs in PHP herunterladen, ohne dass der Speicher erschöpft ist?

Patricia Arquette
Freigeben: 2024-12-16 01:38:13
Original
643 Leute haben es durchsucht

How Can I Download Large Files from URLs in PHP without Memory Exhaustion?

Große Dateien von URLs ohne Speicherprobleme herunterladen

Webentwickler stehen häufig vor der Herausforderung, große Dateien von Remote-URLs herunterzuladen. Während der einfache Ansatz mit file_get_contents() und file_put_contents() für kleinere Dateien möglicherweise ausreicht, ist er für Dateien, die die Speichergrenzen überschreiten, nicht ausreichend. Dieses Problem warf die Frage auf: Wie kann man große Dateien inkrementell herunterladen, ohne die Speicherressourcen zu erschöpfen?

Glücklicherweise bietet PHP eine elegante Lösung, die dieses Problem angeht. Seit Version 5.1.0 unterstützt file_put_contents() das Schreiben von Daten in Blöcken, indem ein Stream-Handle als zweites Argument übergeben wird.

Hier ist der geänderte Code, der diese Funktion nutzt:

file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));
Nach dem Login kopieren

Dies Der Code funktioniert wie folgt:

  • Er öffnet die Remote-URL als Stream-Handle mit fopen().
  • Dieses Handle wird dann als Datenparameter an file_put_contents() übergeben.
  • Während die Remote-Datei heruntergeladen wird, wird sie nach und nach in die lokale Datei Tmpfile.zip geschrieben. ohne den Speicher zu überlasten.

Das PHP-Handbuch erklärt, dass die Übergabe eines Stream-Handles an file_put_contents() das Kopieren des verbleibenden Puffers aus dem Stream auslöst in die Zieldatei. Dieser Mechanismus spiegelt effektiv die Funktionalität von stream_copy_to_stream() wider.

Durch den Einsatz dieser Technik können Entwickler mühelos große Dateien herunterladen, ohne auf Speicherbeschränkungen zu stoßen, wodurch eine nahtlose Datenübertragung selbst für die umfangreichsten Dateigrößen gewährleistet wird.

Das obige ist der detaillierte Inhalt vonWie kann ich große Dateien von URLs in PHP herunterladen, ohne dass der Speicher erschöpft ist?. 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