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.


0 0 0


Diskussion

avatar placeholder
4. Juli 2019 von Helmut

Gutes klares Beispiel Danke

avatar placeholder
9. Okt. 2020 von Axel

Menschen wie Ihr seid für uns Hobby-PHP-Basler einfach unersetzlich.

avatar placeholder
20. Juni 2021 von Christian

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 :-)

avatar placeholder
20. Juni 2021 von Christian

Vielen Dank für die Zeilen. Mir hat es direkt 1:1 bei einem Thema geholfen.

Mitdiskutieren

*