Heim > Artikel > Backend-Entwicklung > So verwenden Sie die PHP-Fopen-Funktion
Die PHP-Funktion fopen wird zum Öffnen einer Datei oder URL verwendet. Ihre Syntax ist fopen(filename, mode, include_path, context). Der Parameter filename bezieht sich auf die zu öffnende Datei oder URL , was sich auf die Anforderung an die Datei/den Zugriffstyp des Streams bezieht.
Wie verwende ich die PHP-Fopen-Funktion?
Definition und Verwendung
Die Funktion fopen() öffnet eine Datei oder URL.
Wenn das Öffnen fehlschlägt, gibt diese Funktion FALSE zurück.
Syntax
fopen(filename,mode,include_path,context)
Parameter
Dateiname erforderlich. Gibt die zu öffnende Datei oder URL an.
Modus erforderlich. Gibt die Art des Zugriffs an, der für diese Datei/diesen Stream erforderlich ist. Mögliche Werte sind in der folgenden Tabelle aufgeführt.
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 für ein Dateihandle an. Kontext ist eine Reihe von Optionen, die das Verhalten des Streams ändern können.
Mögliche Werte des Modusparameters
Modusbeschreibung
"r" Öffnen Sie im schreibgeschützten Modus und zeigen Sie mit dem Dateizeiger auf Dateikopf.
"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- und Schreibmodus und zeigen Sie mit dem Dateizeiger auf das Ende der Datei. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
„x“ wird erstellt und zum Schreiben geöffnet, 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 O_EXCL|O_CREAT-Flags 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+“ erstellt und öffnet es zum Lesen und Schreiben, 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 O_EXCL|O_CREAT-Flags 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.
Erklärung
fopen() bindet die durch Dateiname 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 Wrapper-Protokoll nicht für das 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 fortzusetzen, als wäre es ein normaler Dateiname.
Wenn PHP denkt, dass der Dateiname eine lokale Datei angibt, versucht es, 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 davon ausgeht, 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.
Unterstützung für Kontext wurde in PHP 5.0.0 hinzugefügt.
Tipps und Hinweise
Hinweis: Verschiedene 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 Dateien mit falschen Zeilenenden geschrieben werden, kann es bei anderen Anwendungen zu einem seltsamen Verhalten beim Öffnen der Dateien kommen.
Windows bietet ein Textkonvertierungs-Tag („t“), das n transparent in rn konvertieren kann. 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“.
在操作二进制文件时如果没有指定 "b" 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。
注释:为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 "b" 标记。
注释:再一次,为移植性考虑,强烈建议你重写那些依赖于 "t" 模式的代码使其使用正确的行结束符并改成 "b" 模式。
例子
<?php $file = fopen("test.txt","r"); $file = fopen("/home/test/test.txt","r"); $file = fopen("/home/test/test.gif","wb"); $file = fopen("http://www.example.com/","r"); $file = fopen("ftp://user:password@example.com/test.txt","w"); ?>
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die PHP-Fopen-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!