PHP- Datei Öffnen/Lesen/Schließen
In diesem Kapitel zeigen wir Ihnen, wie Sie eine Datei auf dem Server öffnen, lesen und schließen.
PHP-Datei öffnen - fopen()
Eine bessere Methode zum Öffnen von Dateien ist die fopen()
Funktion. Diese Funktion bietet Ihnen mehr Optionen als die readfile()
Funktion.
Wir werden im Unterricht die Textdatei "webdictionary.txt" verwenden:
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
Der erste Parameter von fopen()
enthält den Namen der zu öffnenden Datei und der zweite Parameter gibt an, in welchem Modus die Datei geöffnet werden soll. Das folgende Beispiel generiert auch eine Meldung, wenn die Funktion fopen() die angegebene Datei nicht öffnen kann:
Beispiel
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>
Tipp: Die fread()
und die fclose()
Funktionen werden weiter unten erklärt.
Die Datei kann in einem der folgenden Modi geöffnet werden:
Modes | Description |
---|---|
r | Open a file for read only. File pointer starts at the beginning of the file |
w | Open a file for write only. Erases the contents of the file or creates a new file if it doesn't exist. File pointer starts at the beginning of the file |
a | Open a file for write only. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn't exist |
x | Creates a new file for write only. Returns FALSE and an error if file already exists |
r+ | Open a file for read/write. File pointer starts at the beginning of the file |
w+ | Open a file for read/write. Erases the contents of the file or creates a new file if it doesn't exist. File pointer starts at the beginning of the file |
a+ | Open a file for read/write. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn't exist |
x+ | Creates a new file for read/write. Returns FALSE and an error if file already exists |
PHP-Lesedatei - fread()
Die fread()
Funktion liest aus einer geöffneten Datei.
Der erste Parameter von fread()
enthält den Namen der Datei, aus der gelesen werden soll, und der zweite Parameter gibt die maximale Anzahl der zu lesenden Bytes an.
Der folgende PHP-Code liest die Datei „webdictionary.txt“ zu Ende:
fread($myfile,filesize("webdictionary.txt"));
PHP-Datei schließen - fclose()
Die fclose()
Funktion dient zum Schließen einer geöffneten Datei.
Es ist eine gute Programmierpraxis, alle Dateien zu schließen, nachdem Sie mit ihnen fertig sind. Sie möchten nicht, dass eine offene Datei auf Ihrem Server herumläuft und Ressourcen beansprucht!
Das fclose()
erfordert den Namen der Datei (oder eine Variable, die den Dateinamen enthält), die wir schließen möchten:
<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>
PHP liest einzelne Zeile - fgets()
Die fgets()
Funktion wird verwendet, um eine einzelne Zeile aus einer Datei zu lesen.
Das folgende Beispiel gibt die erste Zeile der Datei "webdictionary.txt" aus:
Beispiel
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>
Hinweis: Nach einem Aufruf der fgets()
Funktion ist der Dateizeiger in die nächste Zeile gewandert.
PHP-Prüfung des Dateiendes - feof()
Die feof()
Funktion prüft, ob das "End-of-File" (EOF) erreicht ist.
Die feof()
Funktion ist nützlich, um Daten unbekannter Länge durchzuschleifen.
Das folgende Beispiel liest die Datei "webdictionary.txt" Zeile für Zeile, bis das Dateiende erreicht ist:
Beispiel
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
PHP liest einzelnes Zeichen - fgetc()
Die fgetc()
Funktion wird verwendet, um ein einzelnes Zeichen aus einer Datei zu lesen.
Das folgende Beispiel liest die Datei "webdictionary.txt" Zeichen für Zeichen, bis das Dateiende erreicht ist:
Beispiel
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
Hinweis: Nach Aufruf der fgetc()
Funktion springt der Dateizeiger auf das nächste Zeichen.
Vollständige Referenz zum PHP-Dateisystem
Eine vollständige Referenz der Dateisystemfunktionen finden Sie in unserer vollständigen PHP-Dateisystemreferenz .