Heim  >  Artikel  >  php教程  >  Anweisungen zur Verwendung der Fopen-Funktion zum Öffnen von Dateien in PHP

Anweisungen zur Verwendung der Fopen-Funktion zum Öffnen von Dateien in PHP

高洛峰
高洛峰Original
2016-12-21 15:54:311442Durchsuche

1.resource fopen(string $filename, string $mode [,bool $use_include_path [, resources $zcontext]])
Funktion:
fopen() bindet die durch filename angegebene Namensressource an einen Stream . Wenn der Dateiname die Form „scheme://…“ hat, wird er als URL behandelt und PHP sucht nach einem Protokollhandler (auch Wrapper-Protokoll genannt), der das Schema verarbeitet. Wenn das Protokoll nicht als Wrapper-Protokoll registriert wurde, gibt PHP eine Meldung aus, um bei der Suche nach potenziellen Problemen im Skript zu helfen und die Ausführung von Dateiname als normalen Dateinamen fortzusetzen.
Wenn PHP denkt, dass Dateiname eine lokale Datei angibt, wird es versuchen, einen Stream für diese Datei zu öffnen. Auf die Datei muss PHP zugreifen können. Daher müssen Sie bestätigen, dass die Dateizugriffsberechtigungen diesen Zugriff zulassen. Wenn der abgesicherte Modus oder open_basedir aktiviert ist, gelten weitere Einschränkungen.

Wenn PHP denkt, dass der Dateiname ein registriertes Protokoll angibt und das Protokoll als Netzwerk-URL registriert ist, prüft und bestätigt PHP, dass „allow_url_fopen“ aktiviert wurde. Wenn es geschlossen ist, gibt PHP eine Warnung aus und der Aufruf von fopen schlägt fehl.

Dateiname: Gibt die Datei oder URL an, die geöffnet werden soll.
Modus: Gibt die Art des Zugriffs an, der auf die Datei/den Stream erforderlich ist.
include_path: Optional. Wenn Sie auch Dateien in include_path abrufen müssen, können Sie diesen Parameter auf 1 oder TRUE setzen.
Kontext: Optional, gibt die Umgebung des Dateihandles an. Der Kontext ist eine Reihe von Optionen, die das Verhalten des Streams ändern können.

Mögliche Werte des Modusparameters
Modusbeschreibung
"r" Im schreibgeschützten Modus öffnen und den Dateizeiger auf den Dateikopf zeigen.
„r+“ Öffnen Sie im Lese- und Schreibmodus und zeigen Sie mit dem Dateizeiger auf den Dateikopf.
"w" Öffnen Sie im Schreibmodus, zeigen Sie mit dem Dateizeiger auf den Dateikopf und kürzen Sie die Dateigröße auf Null. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
"w+" Öffnen Sie im Lese- und Schreibmodus, zeigen Sie mit dem Dateizeiger auf den Dateikopf und kürzen Sie die Dateigröße auf Null. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
„a“ Öffnen Sie im Schreibmodus und zeigen Sie mit dem Dateizeiger auf das Ende der Datei. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
"a+" Öffnen Sie im Lese-/Schreibmodus und zeigen Sie mit dem Dateizeiger auf das Ende der Datei. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
"x"
Erstellen und zum Schreiben öffnen, wobei der Dateizeiger auf den Dateikopf zeigt. Wenn die Datei bereits vorhanden ist, schlägt der Aufruf von fopen() fehl, gibt FALSE zurück und generiert eine Fehlermeldung der Ebene E_WARNING. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
Dies entspricht der Angabe des Flags O_EXCL|O_CREAT für den zugrunde liegenden open(2)-Systemaufruf.
Diese Option wird von PHP 4.3.2 und späteren Versionen unterstützt und kann nur für lokale Dateien verwendet werden.

"x+"
Erstellen und öffnen Sie im Lese-/Schreibmodus, wobei der Dateizeiger auf den Dateikopf zeigt. Wenn die Datei bereits vorhanden ist, schlägt der Aufruf von fopen() fehl, gibt FALSE zurück und generiert eine Fehlermeldung der Ebene E_WARNING. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
Dies entspricht der Angabe des Flags O_EXCL|O_CREAT für den zugrunde liegenden open(2)-Systemaufruf.
Diese Option wird von PHP 4.3.2 und späteren Versionen unterstützt und kann nur für lokale Dateien verwendet werden.

Hinweis:
Unterschiedliche Betriebssystemfamilien haben unterschiedliche Zeilenendekonventionen. Wenn Sie in eine Textdatei schreiben und eine neue Zeile einfügen möchten, müssen Sie betriebssystemkonforme Zeilenenden verwenden. Unix-basierte Systeme verwenden n als Zeilenendzeichen, Windows-basierte Systeme verwenden rn als Zeilenendzeichen und Macintosh-basierte Systeme verwenden r als Zeilenendzeichen.

Wenn Sie Dateien mit falschen Zeilenenden schreiben, kann es sein, dass sich andere Anwendungen beim Öffnen dieser Dateien seltsam verhalten.
Windows stellt ein Textkonvertierungs-Tag („t“) bereit, um n transparent in rn umzuwandeln. Alternativ kann „b“ verwendet werden, um den Binärmodus zu erzwingen, sodass die Daten nicht konvertiert werden. Um diese Flags zu verwenden, verwenden Sie entweder „b“ oder „t“ als letztes Zeichen des Modusarguments.

Der Standardkonvertierungsmodus hängt von der verwendeten SAPI- und PHP-Version ab. Aus Gründen der Portabilität wird daher empfohlen, immer die entsprechenden Tags anzugeben. Wenn Sie mit einfachen Textdateien arbeiten und n als Zeilenende in Ihrem Skript verwenden, die Dateien aber auch von anderen Anwendungen wie Notepad lesbar sein sollen, verwenden Sie „t“ im Modus. In allen anderen Fällen verwenden Sie „b“.

Wenn Sie beim Betrieb von Binärdateien nicht das Flag „b“ angeben, können seltsame Probleme auftreten, darunter beschädigte Bilddateien und seltsame Probleme mit dem rn-Zeichen.


Weitere verwandte Artikel zur Verwendung der fopen-Funktion zum Öffnen von Dateien in PHP finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn