PHP 4.3

10.2 Öffnen von Dateien mit PHP

Um die Inhalte einer Datei einsehen zu können, muss diese zuerst geöffnet werden. PHP stellt dafür die Funktion fopen() zur Verfügung. Als Parameter erwartet die Funktion den Namen der Datei als Zeichenkette sowie den Modus, in dem Sie die Datei öffnen möchten. Der Modus bestimmt, mit welchen Lese- und/oder Schreibrechten die Datei geöffnet werden soll. "r" steht dabei für Lesen (engl. read), "w" für Schreiben (engl. write). Ausführlichere Informationen zum Thema Modus folgen auf der nächsten Seite.

Um eine neue Datei zu erzeugen, öffnen Sie diese im Schreibmodus. Wenn PHP in diesem Modus keine Datei vorfindet, legt es sie automatisch an.

int = fopen(Datei, Modus);

Beispielskript Dateien öffnen
$fp1 = fopen("test.txt", "r");
 
$fp2 = fopen("test_neu.txt", "w");

Um bei mehreren geöffneten Dateien eine bestimmte Datei schnell und verwechslungsfrei ansprechen zu können, gibt fopen() einen Dateizeiger (oftmals auch als "file pointer" bezeichnet) wieder, der im abgebildeten Beispiel der Variable $fp1 bzw. $fp2 zugewiesen wird. Mittels des Dateizeigers können Sie den Lese- und Schreibfunktionen mitteilen, in welcher Datei Aktionen durchgeführt werden sollen.

PHP ist, wie das folgende Beispiel zeigt, auch in der Lage, HTTP- und FTP-Verbindungen aufzubauen. HTTP-Verbindungen sind dabei jedoch auf reine Lese-Verbindungen beschränkt; bei FTP-Verbindungen können Sie in einer Verbindung entweder schreiben oder lesen, nicht jedoch beides gleichzeitig.

Beispielskript Dateien öffnen
$fp1 = fopen("http://www.allesgeht.de/txt/test.txt", "r");

$fp2 = fopen("ftp://ftp.allesgeht.de/txt/test.txt", "w");

Wenn die Datei nicht geöffnet werden konnte oder die zum Öffnen benötigten Rechte nicht vorliegen, liefert die Funktion false zurück. Da alle weiteren Funktionen zum Zugriff auf die Datei in diesem Fall sinnlos wären, ist es immer ratsam, eine if-Abfrage einzusetzen und dann z.B. mit die() das Skript abzubrechen. Dennoch wird PHP eine Fehlermeldung ausgeben, wenn es der Funktion unmöglich ist, die gewünschte Datei zu öffnen. Da dies nicht unbedingt wünschenswert ist, wenn das Skript auf einem Server läuft, gibt es den Operator "@", mit dem einfach alle Fehlermeldungen unterdrückt werden. Das folgende Beispiel verdeutlich das noch einmal im Zusammenhang:

Beispielskript zum Prüfen des Dateizeigers
<?php
  $fp1 = @ fopen("test.txt", "r");    if ($fp1 == false) {   echo "Datei nicht gefunden!"; } else {   echo "Datei erfolgreich geöffnet."; } ?>

Kommentare (0)

Ihr Kommentar

Name