Dateien mit PHP einlesen
Wie kann ich mit PHP eine Datei einlesen.
Man kann eine Datei manuell öffnen und Zeile für Zeile lesen:
- <?php
-
- $fp = @fopen("datei", "r") or die ("Kann Datei nicht lesen.");
-
- while($line = fgets($fp, 1024)){
- machwas($line);
- }
-
- fclose($fp);
- ?>
Dies verwendet die Funktionen
fopen() und
fgets().
Wenn die gelesenen Zeilen sofort ausgegeben werden sollen, dann kann man dies kürzer mit
fpassthru() oder gar
readfile() schreiben:
- <?php
-
- $fp = @fopen("datei", "r") or die ("Kann Datei nicht lesen.");
-
- fpassthru($fp);
-
-
-
- readfile("datei");
- ?>
Will man stattdessen die Daten in der Datei in einem Array zur Verfügung haben,
kann man
file() verwenden.
Will man die Daten in der Datei in einem einzigen String zur Verfügung haben, muss man dies mit
implode() kombinieren:
- <?php
-
- $avar = file("datei");
-
- $str = implode(" ",file("datei"));
-
- $str = implode(" ", @file("datei"));
- ?>
In jedem Fall kann man den Funktionen wie üblich einen
Klammeraffen (@) voranstellen, um die Fehlermeldungen zu unterdrücken.
Die häufigste Fehlermeldung bei
fopen() & Co. ist
"Warning: Supplied argument is not a valid File-Handle resource".
Im
safe_mode unterliegt das Lesen und Schreiben von Dateien weiteren Einschränkungen.