Wie man eine große Datei zeilenweise in PHP effizient liest, ohne den Speicher zu überlasten?
Hallo zusammen! Ich bin ein PHP-Anfänger und habe ein Problem bei der Verarbeitung großer Dateien. Ich habe eine CSV-Datei mit etwa 200 MB, die ich zeilenweise verarbeiten muss. Zuerst habe ich versucht, file_get_contents() und explode() mit dem Zeilenumbruch zu verwenden, aber das Skript stürzt mit dem Fehler "Allowed memory size exhausted" ab. Hier ist mein Code:\n\n```php\n$data = file_get_contents('big_file.csv');\n$lines = explode("\n", $data);\nforeach ($lines as $line) {\n // Zeile verarbeiten\n echo $line . "\n";\n}\n```\n\nIch verstehe, dass file_get_contents() die gesamte Datei in den Speicher lädt, was das Problem verursacht. Aber wie liest man eine Datei dann richtig zeilenweise? Ich habe von fopen() und fgets() gehört, bin mir aber nicht sicher, wie man sie für große Dateien richtig einsetzt. Mich interessiert auch, wie man Dateien größer als 1 GB verarbeitet – gibt es dabei Fallstricke? Und kann man das Lesen irgendwie optimieren, um unnötigen Speicher zu sparen? Vielen Dank im Voraus für die Hilfe!\n<<>>\n
Verwendung von fopen() und fg
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Wie man in 30 Minuten ein REST API in C# schreibt: Schritt-für-Schritt-Anleitung
transient in Java: warum, wann und wie man es im Jahr 2025 verwendet
GraphQL vs REST in Kotlin: Was man 2025 für das Backend wählen sollte
Telegram-Bot in C#: Von Grund auf in 30 Minuten erstellen