de.comp.lang.php.* FAQ

13.1. Wie kann ich eine Datei auslesen?

Keywords: Datei | Inhalt | oeffnen | Zeile | lesen | safe_mode

Antwort von Kristian Köhntopp

Man kann eine Datei manuell öffnen und Zeile für Zeile lesen:

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

$fp = @fopen("datei", "r") or die ("Kann Datei nicht lesen.");
fpassthru($fp);
// fclose($fp); entfällt.

// Noch einfacher ist es mit readfile():
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:

// Einlesen in Array
$avar = file("datei");

// Einlesen in String
$str = implode("", file("datei"));

// Mit unterdrückten Meldungen
$str = implode("", @file("datei"));

Ab PHP 4.3.0 kann man zum Einlesen in einen String auch die Funktion file_get_contents() verwenden. Große Dateien sollte man allerdings häppchenweise mit fopen() und fread() abarbeiten.

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.

Valid HTML 4.01! Valid CSS!

13.1. Wie kann ich eine Datei auslesen?
http://www.php-faq.de/q/q-datei-lesen.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team