Mit PHP eine Datei zeilenweise lesen
So kann man mit PHP eine Datei Zeile für Zeile auslesen und die entsprechenden Daten verarbeiten.
Möchte man mit PHP die Inhalte einer Datei verarbeiten, gibt es dafür verschiedene Möglichkeiten. Insbesondere bei großen Dateien sind einige dieser Methoden jedoch ungeeignet, da sie die Daten direkt in den Speicher lesen. Will man beispielsweise mit file_get_contents eine 2GB große Text-Datei verarbeiten, stößt man schnell an die Grenzen. Daher eignet sich besonders für große Dateien eine andere Vorgehensweise.
Hierbei kommt die Funktion fgets zum Einsatz, die bei einem übergebenen File-Handle jeweils die nächste Zeile ausliest und deren Inhalt zurückgibt:
<?php $file = 'mybigdata.csv'; $file_handle = fopen($file, 'r'); while (!feof($file_handle)) { $line = fgets($file_handle); echo $line; } fclose($file_handle); ?>
Die While-Schleife sorgt dafür, dass dies bis zum Ende der Datei gemacht wird. Damit ist es einfach möglich sehr große Dateien auszulesen und diese zum Beispiel in eine Datenbank oder Content-Management-System zu importieren.
Diskussion
Menschen wie Ihr seid für uns Hobby-PHP-Basler einfach unersetzlich.
An dieser Stelle vielen Dank für Dein kurzes Codeschnippselchen. Das hilft mir. Um Mich Axel auch anzuschließen – für Hobby-PHP-Bastler eine sehr gute Hilfe bevor man sich alle Befehle einzeln zusammen sucht :-)
Vielen Dank für die Zeilen. Mir hat es direkt 1:1 bei einem Thema geholfen.
Gutes klares Beispiel Danke