Mit PHP schreiben und lesen
![[Bildschirmfoto]
Mit PHP schreiben und lesen [Bildschirmfoto]
Mit PHP schreiben und lesen](../scripte/img/mit_php_schreiben_und_lesen.png)
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 » Steuerzeichen: "\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($array, 4, 1);
// 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($array, 4, 1, "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.