Dateien mit readfile() oder file() lesen
Während die Funktion fgets() den Inhalt einer Datei zeilenweise einliest, können Sie mit den Befehlen readfile() und file() den gesamten Inhalt einer Datei auf einmal wiedergeben.
Der Unterschied zwischen den beiden Funktionen readfile() und file() liegt in der Ausgabe der Daten der Datei:
readfile() liest vollständig den Inhalt der Datei aus und sendet das Ergebnis ohne weitere Bearbeitung direkt an den Browser.file() hingegen liest den vollständigen Inhalt der Datei zeilenweise in einen eindimensionales array. Hierbei wird jeweils der Inhalt einer Zeile zu einem Element des Feldes.readfile(Datei); file(Datei);
Beispiel readfile.php
<html> <body> <h4>Auslesen einer Textdatei</h4> <?php readfile("user.txt"); ?> </body> </html>
Beispiel file.php
<html> <body> <h4>Auslesen einer Textdatei</h4> <?php $feld = file("user.txt"); echo "<p>"; $i=1; foreach($feld as $zeile) { echo "Zeile ".$i++.": "; echo $zeile."<br>"; } ?> </body> </html>
Sie können die gesamte Datei in einen String einlesen. Hierbei verbinden Sie die einzelnen ausgelesenen Zeilen mithilfe der Zeichenkettenfunktion join().
Sie können mit der Funktion join() ein Feld anhand eines Trennzeichens zu einem String zusammenfügen. Dabei werden die Elemente des Feldes nacheinander an den String angehängt.
join(Trennzeichen,Feld);
Beispiel join.php
<?php if (file_exists("user.txt")) {$finhalt = join (";",file("user.txt")); echo $finhalt; } ?>
Beispieldatei „join.php“
file_exists() wird überprüft, ob die Datei existiert. Die Funktion file_ exists()erwartet als einzigen Parameter den Namen einer Datei auf dem Webserver. Dateien anderer Server (URL) können nicht auf ihre Existenz überprüft werden.join() verbindet die mithilfe der Funktion file() ausgelesenen Datei user.txt zu einer Zeichenkette. Als Trennzeichen wird hierbei das Semikolon „;“ verwendet.