Datei-Operationen
Es gibt viele Datei-Operationen, die man mit PHP machen kann, daher wird hier nur ein kleiner Überblick geboten.
Das wichtigste ist Text-Dateien zu lesen und beschreiben.
wie bei jedem Texteditor auch muss eine Datei erst geöffnet werden, damit man sie bearbeiten kann. Mit PHP hat man verschiedene Modi um eine Datei zu öffnen:
| 'r' | Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei. |
| 'r+' | Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei. |
| 'w' | Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen. |
| 'w+' | Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen. |
| 'a' | Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen. |
| 'a+' | Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen. |
Der gewählte Modus wird der Funktion fopen() übergeben:
PHP-Code:
01
02
03
04
05
06
07
In der Variablen $file wird nun die Resource zu der angegebenen Datei gebunden. Diese Variable ist für spätere Änderungen wichtig.
Die Datei wird mit fclose() wieder geschlossen.
wenn nun in die Datei etwas geschrieben werden soll, so muss nun die Funktion fwrite() angewand werden:
PHP-Code:
01
02
03
04
05
06
07
08
09
10
11
12
Nun in der Inhalt der Variablen $file in die angegebene Datei geschrieben worden. Durch den gewählten Modus ist der alte Inhalt überschrieben worden.
Sinnvoll für derartige Arbeiten an Datein ist es, vorher zu prüfen, ob diese Datei überhaupt existiert und ob sie beschreibbar ist, ob ...
PHP-Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$text_in_die_datei = 'Dies ist ein Text-Datei-Test';
$datei = 'datei.txt';
// existiert die Datei überhaupt?
if(!file_exists($datei));
die('Die Datei '.$datei.' existiert nicht!');
// ist die Datei auch wirklich eine Datei?
if(!is_file($datei))
die('Die Ressource '.$datei.' ist keine Datei!');
// kann man sie öffnen?
if(!is_readable($datei));
die('Die Datei '.$datei.' kann nicht geöffnet werden!');
// ist die Datei auch wirklich beschreibbar?
if(!is_writable($datei))
die('Die Datei '.$datei.' nicht beschreibbar!');
// nach der Prüfung scheint soweit alles in Ordnung zu sein...
// Datei öffnen
$file = fopen($datei, "w");
// Inhalt in Datei schreiben
fwrite($file, $text_in_die_datei);
// Datei schliessen
fclose($file);
?>
Wie ihr sehen könnt, kann man sich auch wirklich absichern, dass man das geplante auch machen kann/darf.
Werden die Rechte an der Datei zwischenzeitlich geändert, so muss man das von PHP gespeicherte Ergebniss vor einer erneuten Abfrage löschen:
PHP-Code:
01
02
03
<?php
clearstatcache();
?>
Eine Anwendungsmöglichkeit von fopen(), fclose() ... könnt ihr in dem Tutorial sehen:
Gästebuch auf Textdatei basierend