Mit PHP schreiben und lesen

Hier möchte ich an Beispielen zeigen, wie eine .txt-Datei mit PHP erstellt wird und wie diese ausgelesen werden kann.

Eine neue .txt-Datei erstellen Sie mit folgenden Code:

1
2
3
4
5
6
7
8
9
10
<?php
$text 
"Hallo Welt\n"// Dateiinhalt
$dateiname "test.txt"// Name der Datei
// Datei öffnen,
// wenn nicht vorhanden dann wird die Datei erstellt.
$handler fopen($dateiname "a+");
// Dateiinhalt in die Datei schreiben
fwrite($handler $text);
fclose($handler); // Datei schließen
?>

Die Funktion fopen() öffnet die Datei.
Die Funktion fwrite() schreibt Inhalt in die Datei.
Die Funktion fclose() schließt die Datei.

Das Dateiattribut "a+" öffnet die Datei zum lesen und schreiben (ist die Datei nicht vorhanden, so wird diese erstellt). Weitere Informationen über » Dateiattribute.
Mit dem » Escape-Zeichen: "\n" erzeugen Sie (nachfolgend) eine neue Zeile in der Datei.

Übrigens können Sie mit diesem Beispiel auch weiteren Inhalt (Text) in eine Datei schreiben.
So könnte die Datei "test.txt" nach einigen Einträgen aussehen:

Hallo Welt
Ein Test
Noch ein Test
und so weiter

Die erstellte Datei "test.txt" benötigt möglicherweise » Schreib- und Zugriffsrechte

Dateiinhalte auslesen

Möglichkeit 1 - Datei direkt ausgeben:

1
2
3
<?php
readfile
("test.txt");
?>

Möglichkeit 2 - Eine Zeile auslesen: *

1
2
3
4
5
6
7
<?php
$datei 
"test.txt"// Name der Datei
$array file($datei); // Datei in ein Array einlesen
// Zeile 6 wird ausgegeben
// (das Array fängt mit dem Zählen bei 0 an)
echo $array[5];
?>

Möglichkeit 3 - Alles auslesen:

1
2
3
4
5
<?php
// Datei in eine Variable ($text) einlesen
$text file_get_contents("test.txt");
echo 
$text// Dateiinhalt ausgeben
?>

Möglichkeit 4 - Datei in ein Array einlesen und ausgeben: *

1
2
3
4
5
6
7
<?php
$datei 
"test.txt"// Name der Datei
$array file($datei); // Datei in ein Array einlesen
foreach ($array as $element) {
 echo 
$element "<br>"// Dateiinhalt ausgeben
}
?>

Die Funktion file() liest den Inhalt der Datei in ein Array ($array).

Datei in ein Array einlesen und einen Text am Dateianfang einfügen *

1
2
3
4
5
6
7
8
9
<?php
$array 
file("test.txt"); // Datei in ein Array einlesen
// Fügt ein Element (Text) am Anfang eines Arrays ein
array_unshift($array"Lorem Ipsum dolor\n");
// Array-Elemente zu einem String (Zeichenkette) verbinden
$string implode(""$array);
// Text in Datei schreiben und speichern
file_put_contents("test.txt"$string);
?>

Datei einlesen und einen Text an das Dateiende anhängen

1
2
3
4
<?php
$inhalt 
file_get_contents("test.txt");
file_put_contents("test.txt"$inhalt .= "Lorem Ipsum dolor\n");
?>

Datei in ein Array einlesen und eine Zeile löschen *

1
2
3
4
5
6
7
8
9
10
<?php
$array 
file("test.txt"); // Datei in ein Array einlesen
// Zeile 5 wird gelöscht
// (das Array fängt mit dem Zählen bei 0 an)
array_splice($array41);
// Array-Elemente zu einem String (Zeichenkette) verbinden
$string implode(""$array);
// Text in Datei schreiben und speichern
file_put_contents("test.txt"$string);
?>

Um eine Zeile zu ändern verwenden Sie einfach:

1
2
3
4
5
6
7
8
9
10
<?php
$array 
file("test.txt"); // Datei in ein Array einlesen
// Zeile 5 wird geändert
// (das Array fängt mit dem Zählen bei 0 an)
array_splice($array41"Der neue Zeileninhalt\n");
// Array-Elemente zu einem String (Zeichenkette) verbinden
$string implode(""$array);
// Text in Datei schreiben und speichern
file_put_contents("test.txt"$string);
?>

* Wichtig ist, das in der Datei: "test.txt" hinter jeder Zeile ein Zeilenumbruch steht.
Dieser Zeilenumbruch wird entweder per "Hand" mit der Eingabetaste (Return) eingefügt oder (wie bereits weiter oben erwähnt) mit dem Escape-Zeichen: "\n" beim schreiben in eine Datei mit PHP.

Tipp

Verzeichnis auslesen und mit einem Link verknüpfen