English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen Sie, wie Sie mit den Dateisystemfunktionen von PHP Dateien dynamisch erstellen, zugreifen (oder lesen) und verändern können.
Da PHP eine serverseitige Programmiersprache ist, ermöglicht es Ihnen, auf Dateien und Verzeichnisse zuzugreifen, die auf dem Webserver gespeichert sind. In diesem Tutorial lernen Sie, wie Sie mit PHP-Dateisystemfunktionen Dateien auf dem Webserver erstellen, zugreifen und verwalten können.
Um Dateien zu verwenden, müssen Sie zunächst die Datei öffnen. Die PHP-Funktion fopen() wird verwendet, um Dateien zu öffnen. Die grundlegende Syntax kann wie folgt dargestellt werden:
fopen(filename, mode)
Der erste Parameter, der an fopen() übergeben wird, spezifiziert den Namen der Datei, die geöffnet werden soll, und der zweite Parameter spezifiziert, in welchem Modus die Datei geöffnet werden soll. Zum Beispiel:
<?php $handle = fopen("data.txt", "r"); ?>Testen Sie es heraus‹/›
Eine Datei kann auf eine der folgenden Arten geöffnet werden:
Modus | Was kann es tun |
---|---|
r | Öffnen Sie die Datei nur zum Lesen. |
r+ | Öffnen Sie die Datei zum Lesen und Schreiben. |
w | Öffnen Sie die Datei nur zum Schreiben und löschen Sie den Inhalt der Datei. Wenn die Datei nicht existiert, versucht PHP, sie zu erstellen. |
w+ | Öffnen Sie die Datei zum Lesen und Schreiben und löschen Sie den Inhalt der Datei. Wenn die Datei nicht existiert, versucht PHP, sie zu erstellen. |
a | Hinzufügen. Öffnen Sie die Datei nur zum Schreiben. Behalten Sie den Inhalt der Datei bei Schreiben am Ende der Datei bei. Wenn die Datei nicht existiert, versucht PHP, sie zu erstellen. |
a+ | Lesen/Hinzufügen. Öffnen Sie die Datei zum Lesen und Schreiben. Behalten Sie den Inhalt der Datei bei Schreiben am Ende der Datei bei. Wenn die Datei nicht existiert, versucht PHP, sie zu erstellen. |
x | Öffnen Sie die Datei nur zum Schreiben. Wenn die Datei bereits existiert, wird False zurückgegeben und ein Fehler generiert. Wenn die Datei nicht existiert, versucht PHP, sie zu erstellen. |
x+ | Öffnen Sie die Datei zum Lesen und Schreiben; andernfalls ist ihr Verhalten wie bei "x". |
Wenn Sie versuchen, eine nicht vorhandene Datei zu öffnen, generiert PHP eine Warnmeldung. Daher sollten Sie vor dem Zugriff auf eine Datei oder ein Verzeichnis eine einfache Überprüfung mit der Funktion PHP file_exists() durchführen, um zu überprüfen, ob die Datei oder das Verzeichnis existiert.
<?php $file = "data.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ // Versuchen Sie, die Datei zu öffnen $handle = fopen($file, "r"); } else { echo "ERROR: File does not exist."; } ?>Testen Sie es heraus‹/›
Tipp:Operationen auf Dateien und Verzeichnissen sind leicht fehleranfällig. Daher ist es eine gute Gewohnheit, eine Art von Fehlerprüfung zu implementieren, so dass Ihr Skript Fehler elegant behandeln kann, falls ein Fehler auftritt. Bitte beziehen Sie sich aufPHP-FehlerbehandlungAnleitung.
Nachdem Sie die Datei verwendet haben, müssen Sie sie schließen. Die Funktion fclose() wird verwendet, um Dateien wie im folgenden Beispiel zu schließen:
<?php $file = "data.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ //Die Datei öffnen, die gelesen werden soll $handle = fopen($file, "r") or die("ERROR: Cannot open the file."); /* Hier ist ein Beispielcode, der ausgeführt werden soll */ //Dateihandle schließen fclose($handle); } else { echo "ERROR: File does not exist."; } ?>Testen Sie es heraus‹/›
Achtung:Obwohl PHP alle geöffneten Dateien automatisch schließt, wenn das Skript beendet wird, ist es besser, Dateien nach Abschluss aller Operationen zu schließen.
Jetzt haben Sie gelernt, wie man Dateien öffnet und schließt. Im nächsten Abschnitt werden Sie lernen, wie man Daten aus einer Datei liest. PHP hat mehrere Funktionen, um Daten aus einer Datei zu lesen. Sie können mit einer einzigen Operation das gesamte Datei gelesen werden.
Die Funktion fread() kann verwendet werden, um eine bestimmte Anzahl von Zeichen aus einer Datei zu lesen. Sie können die grundlegende Syntax dieser Funktion verwenden.
fread(file handle, length in bytes)
Diese Funktion akzeptiert zwei Parameter-Dateihandle und die Anzahl der zu lesenden Bytes. Der folgende Beispiel liest aus der Datei "data.txt"20 Bytes, einschließlich Leerzeichen. Angenommen, die Datei "data.txt" enthält den Text "The quick brown fox jumps over the lazy dog.".
<?php $file = "data.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ //Die Datei öffnen, die gelesen werden soll $handle = fopen($file, "r") or die("ERROR: Cannot open the file."); //Fixierte Anzahl von Bytes aus der Datei lesen $content = fread($handle, "20); //Den Dateihandle schließen fclose($handle); //Zeigen Sie den Dateiinhalt an echo $content; } else { echo "ERROR: File does not exist."; } ?>Testen Sie es heraus‹/›
Der obige Beispiel erzeugt die folgende Ausgabe:
The quick brown fox
Die Funktion fread() kann mit der Funktion filesize() kombiniert werden, um den gesamten Inhalt der Datei in einem Schritt zu lesen. Die Funktion filesize() dient dazu, die Größe der Datei in Bytes zurückzugeben.
<?php $file = "data.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ //Die Datei öffnen, die gelesen werden soll $handle = fopen($file, "r") or die("ERROR: Cannot open the file."); //Den gesamten Inhalt der Datei lesen $content = fread($handle, filesize($file)); //Dateihandle schließen fclose($handle); //Zeigen Sie den Dateiinhalt an echo $content; } else { echo "ERROR: File does not exist."; } ?>Testen Sie es heraus‹/›
Der obige Beispiel erzeugt die folgende Ausgabe:
The quick brown fox jumps over the lazy dog.
Der einfachste Weg, den gesamten Inhalt einer Datei in PHP zu lesen, ist die Funktion readfile(). Diese Funktion ermöglicht es Ihnen, den Inhalt der Datei zu lesen, ohne die Datei öffnen zu müssen. Der folgende Beispiel erzeugt die gleiche Ausgabe wie der obige Beispiel:
<?php $file = "data.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ //Den gesamten Inhalt der Datei lesen und ausgeben readfile($file) or die("ERROR: Cannot open the file."); } else { echo "ERROR: File does not exist."; } ?>Testen Sie es heraus‹/›
Der obige Beispiel erzeugt die folgende Ausgabe:
The quick brown fox jumps over the lazy dog.
Eine andere Methode, um den gesamten Inhalt einer Datei ohne Öffnen zu lesen, ist die Funktion file_get_contents(). Diese Funktion akzeptiert den Dateinamen und den Pfad und liest den gesamten Inhalt in eine Zeichenkettendatenvariable ein. Hier ist ein Beispiel:
<?php $file = "data.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ // Den gesamten Inhalt der Datei in eine Zeichenkette einlesen $content = file_get_contents($file) or die("ERROR: Cannot open the file."); //Zeigen Sie den Dateiinhalt an echo $content; } else { echo "ERROR: File does not exist."; } ?>Testen Sie es heraus‹/›
Eine andere Methode, um alle Daten aus einer Datei zu lesen, ist die Funktion file() in PHP. Ihre Funktion entspricht der Funktion file_get_content(), aber sie gibt den Dateininhalt als Zeilenarray zurück, anstatt ihn als einzigen String zurückzugeben. Jedes Element des zurückgegebenen Arrays entspricht einer Zeile in der Datei.
Um Dateidaten zu verarbeiten, müssen Sieforeach-SchleifeDurchlaufen Sie das Array. Dies ist ein Beispiel, bei dem die Datei in ein Array gelesen wird und dann mit einem Schleifenzyklus angezeigt wird:
<?php $file = "data.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ //Gesamten Inhalt der Datei in Array lesen $arr = file($file) or die("ERROR: Cannot open the file."); foreach($arr as $line){ echo $line; } } else { echo "ERROR: File does not exist."; } ?>Testen Sie es heraus‹/›
Gleichzeitig können Sie die PHP fwrite() -Funktion verwenden, um Daten in eine Datei zu schreiben oder an eine vorhandene Datei anzuhängen. Die Grundgrammatik der Funktion kann wie folgt angegeben werden:
fwrite(file handle, string)
Die fwrite() -Funktion akzeptiert zwei Parameter - den Dateispeicher und den zu schreibenden Datenstring, wie im folgenden Beispiel gezeigt:
<?php $file = "note.txt"; //Der zu schreibende Datenstring $data = "The quick brown fox jumps over the lazy dog."; //Datei zum Schreiben öffnen $handle = fopen($file, "w") or die("ERROR: Cannot open the file."); //Daten in die Datei schreiben fwrite($handle, $data) or die ("ERROR: Cannot write the file."); //Dateispeicher schließen fclose($handle); echo "Daten wurden erfolgreich in die Datei geschrieben."; ?>
Im obigen Beispiel erstellt PHP automatisch die Datei "note.txt", wenn diese nicht existiert, und schreibt Daten hinein. Wenn die Datei "note.txt" jedoch bereits existiert, löscht PHP den Inhalt der Datei (wenn vorhanden) vor dem Schreiben neuer Daten, aber wenn Sie nur Daten anhängen und den bestehenden Inhalt behalten möchten, verwenden Sie im obigen BeispielModus a anstatt w.
Eine andere Methode ist die Verwendung der file_put_contents() -Funktion. Sie ist die Entsprechung der file_get_contents() -Funktion und bietet eine einfache Möglichkeit, Daten in eine Datei zu schreiben, ohne sie öffnen zu müssen. Die Funktion akzeptiert den Dateinamen und den Pfad sowie die Daten, die in die Datei geschrieben werden. Dies ist ein Beispiel:
<?php $file = "note.txt"; //Der zu schreibende Datenstring $data = "The quick brown fox jumps over the lazy dog."; //Daten in die Datei schreiben file_put_contents($file, $data) or die("ERROR: Cannot write the file."); echo "Daten wurden erfolgreich in die Datei geschrieben."; ?>
Wenn die vom file_put_contents() -Funktion angegebene Datei bereits existiert, überschreibt PHP sie standardmäßig. Um den Inhalt der Datei zu behalten, können Sie den speziellen FILE_APPEND -Schlüssel als dritten Parameter an die file_put_contents() -Funktion übergeben. Es wird einfach neue Daten an die Datei angehängt, anstatt sie zu überschreiben. Dies ist ein Beispiel:
<?php $file = "note.txt"; //Der zu schreibende Datenstring $data = "The quick brown fox jumps over the lazy dog."; //Daten in die Datei schreiben file_put_contents($file, $data, FILE_APPEND) or die("ERROR: Cannot write the file."); echo "Daten wurden erfolgreich in die Datei geschrieben."; ?>
Sie können die PHP-Funktion rename() verwenden, um Dateien oder Verzeichnisse umzubenennen, wie folgt:
<?php $file = "file.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ //Versuchen Sie, die Datei umzubenennen if(rename($file, "newfile.txt")){ echo "Datei wurde erfolgreich umbenannt."; } else { echo "Fehler: Datei kann nicht umbenannt werden."; } } else { echo "Fehler: Datei nicht vorhanden."; } ?>
Sie können die PHP-Funktion unlink() verwenden, um Dateien oder Verzeichnisse zu löschen, wie folgt:
<?php $file = "note.txt"; //Überprüfen Sie, ob die Datei existiert if(file_exists($file)){ //Versuchen Sie, die Datei zu löschen if(unlink($file)){ echo "Datei wurde erfolgreich gelöscht."; } else { echo "Fehler: Datei kann nicht gelöscht werden."; } } else { echo "Fehler: Datei nicht vorhanden."; } ?>
Im nächsten Kapitel werden wir lernen, wie man in PHPVerzeichnis oder OrdnerMehr Informationen.
Nachstehende Tabelle gibt eine Übersicht über einige andere nützliche PHP-Dateisystemfunktionen, die zur dynamischen Lesung und Schreibung von Dateien verwendet werden können.
Funktion | Beschreibung |
---|---|
fgetc() | Lesen Sie ein Zeichen. |
fgets() | Lesen Sie eine Zeile. |
fgetcsv() | Lesen Sie eine Zeile mit kommagetrennten Werten. |
filetype() | Gibt den Typ der Datei zurück. |
feof() | Überprüfen Sie, ob am Ende der Datei angekommen ist. |
is_file() | Überprüfen Sie, ob die Datei ein reguläres Datei ist. |
is_dir() | Überprüfen Sie, ob die Datei ein Verzeichnis ist. |
is_executable() | Überprüfen Sie, ob die Datei ausführbar ist. |
realpath() | Gibt den normierten absoluten Pfadnamen zurück. |
rmdir() | Löschen eines leeren Verzeichnisses. |
Bitte lesen Sie die PHP-Dateisystemreferenz, um andere nützliche PHP-Dateisystemfunktionen zu erhalten.