====== 1.10.2) Dateien öffnen, lesen und schließen ====== ===== Dateien mit fopen() öffnen ===== Bevor Sie auf die Daten in Dateien zugreifen können, müssen Sie die entsprechende Datei öffnen. Dazu können Sie die ''fopen()''-Anweisung verwenden. **Syntax und Bedeutung der fopen() -Anweisung** fopen(Dateiname,Modus); $datei = fopen("user.txt","r") * Zusätzlich zur Angabe der zu öffnenden Datei wird der Modus, in dem die Datei geöffnet werden soll, angegeben: * ''r'' ... Die Datei wird zum Lesen (r = read) geöffnet; Schreiben ist nicht erlaubt.\\ * ''r+'' ... Die Datei wird zum Lesen und Schreiben geöffnet, und der Dateizeiger an den Anfang der Datei gesetzt.\\ * ''w'' ... Öffnet eine Datei zum Schreiben (w = write)\\ * ''w+'' ... Hier handelt es sich um dieselbe Option wie die Option w, nur wird hier die Datei zum Lesen und Schreiben geöffnet. Der Dateizeiger wird auf den Anfang der Datei gesetzt sowie die Länge der Datei auf 0 Byte.\\ * ''a'' ... Die Datei wird zum Schreiben geöffnet, wobei die neuen Daten die vorhandenen Daten ergänzen (a = append).\\ * ''a+'' ... Die Datei wird zusätzlich zum Lesen geöffnet. \\ * ''b'' ... Zusätzlich kann der Option Modus der Buchstabe 'b' hinzugefügt werden, der die Behandlung von Binär-Dateien erlaubt.\\ Dies ist auf Systemen sinnvoll, wenn diese zwischen Binär- und Text-Dateien unterscheiden (wie z. B. Windows). * Der Rückgabewert der Funktion ''fopen()'' ist ein Zeiger auf die geöffnete Datei und wird für weitere Zugriffe auf die Datei genutzt. Im Beispiel wird der Dateizeiger in der Variablen $datei gespeichert. Wenn die angegebene Datei nicht gefunden wird, gibt die Funktion fopen Oden Wert FALSE zurück. ===== Dateien mit fgets() lesen ===== Mithilfe der Funktion ''fgets()'' können Sie den Inhalt einer Datei auslesen. **Syntax und Bedeutung der fgets() -Anweisung** fgets(Dateizeiger[,Modus]); $zeile = fgets($datei); * Im ersten Parameter (Dateizeiger) finden Sie die Angabe zur Datei, aus der gelesen werden soll. Hierbei wird der Dateizeiger im Beispiel $datei aus der vorher geöffneten Datei verwendet. * ''fgets()'' liest die angegebene Datei zeilenweise aus, wobei Sie optional im Parameter Modus die Länge angeben können. Lassen Sie diesen Parameter weg, ist automatisch eine Länge von maximal 1024 Zeichen für eine zu lesende Zeile festgelegt. * ''fgets()'' liest bis zu dem ersten Auftreten eines Zeilenumbruchs bzw. der maximalen Zeilenlänge, dem Ende der Datei (EOF = End of File) oder bis zu der im Parameter Modus ausgegebenen Länge. * Wenn Sie ''fgets()'' erneut aufrufen, wird die nächste Zeile gelesen. * Der Rückgabewert der Funktion fgets() ist eine Zeichenkette. Im Beispiel wird der Rückgabewert in der Variablen $zeile gespeichert. ===== Dateien mit fclose() schließen ===== Nachdem Sie eine Datei geöffnet und die Daten ausgelesen haben, müssen Sie die Datei wieder schließen, um sie für andere Prozesse oder Benutzer nutzbar zu machen. **Syntax und Bedeutung der fclose()-Anweisung** fclose(Dateizeiger); fclose($datei); * Mit der Funktion ''fclose()'' schließen Sie die Datei, auf die der Dateizeiger weist. Der Dateizeiger muss gültig, also mit der Funktion ''fopen()'' geöffnet worden sein. * Wurde die Datei erfolgreich geschlossen, liefert die Funktion ''fclose()'' den Wert ''TRUE'' zurück, sonst ''FALSE''. **Beispiel zu externe Datei öffnen, lesen und schließen: fgets.php, user.txt**
"; $datei = fopen("Gedicht.txt","r"); if ($datei) { echo "

Datei Gedicht.txt:

"; while (!feof($datei)) { $zeile = fgets($datei); echo $zeile."
"; } fclose($datei); } else echo " Es trat ein Fehler auf! " ; ?>