Dateifunktion schreiben: file_put_contents()
FILE_USE_INCLUDE_PATH: überprüft den integrierten Pfad auf eine Kopie des Dateinamens
LOCK_EX: sperrt die Datei
FILE_APPEND: wird an das Ende der Datei verschoben. Andernfalls wird der Inhalt der Datei gelöscht
Syntax:
int file_put_contents(file,data,mode,context)
参数 | 描述 |
---|---|
file | 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。 |
data | 可选。规定要写入文件的数据。可以是字符串、一维数组或数据流。 |
mode | 可选。如何打开/写入文件。可能值:FILE_USE_INCLUDE_PATH 、 FILE_APPEND 、 LOCK_EX |
context | 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。 |
Rückgabewert : Die Funktion gibt die Anzahl der in die Datei geschriebenen Datenbytes zurück.
Modusparameterbeschreibung
hat die gleiche Funktion wie der aufeinanderfolgende Aufruf von fopen(), fwrite() und fclose().
Dateifunktion lesen: file_get_contents()
Syntax:
string file_put_contents(path,include_path,context,start,max_length)
参数 | 描述 |
---|---|
path | 必需。规定要读取的文件。可以是外部url |
include_path | 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 “1”。 |
context | 可选。规定文件句柄的环境。 |
start | 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。 |
max_length | 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。 |
Rückgabewert: der gelesene String.
Unlink() Datei löschen
Umbenennen ( ) Datei verschieben (umbenennen)
Filesize() Dateigröße
File_exists() Ob die Datei existiert
Filemtime() Die letzte Änderungszeit der Datei!
Die meisten Lese- und Schreibvorgänge für Dateien werden mit den folgenden Funktionen durchgeführt: File_put_contents, file_get_contents.
In einigen wenigen Fällen und in besonderen Fällen sind die beiden oben genannten Funktionen nicht einfach zu verwenden.
Normalerweise ist die Datei zu groß! Es kann nur Teil für Teil betrieben werden!
Die Grundeinheiten sind Bytes:
Die Funktion fopen() öffnet eine Datei oder URL.
Wenn das Öffnen fehlschlägt, gibt diese Funktion FALSE zurück.
Dateihandle öffnen, Datenpfad zwischen PHP-Programm und Datei!
Erfordert zwei Parameter: Dateiadresse und Öffnungsmodus!
Öffnungsmodus: Geben Sie an, welche Vorgänge nach dem Öffnen der Datei ausgeführt werden müssen! Folgende Modi können ausgewählt werden:
r: lesen, Lesemodus.
w: Schreiben, Schreibvorgang, klares Schreiben.
a: Anhängen, Schreibvorgang, Schreiben anhängen.
x: Neues Schreiben, Sie können nur neue Dateien für den Betrieb erstellen! Es handelt sich um eine Schreiboperation, ähnlich dem erweiterten Modus w
+: Erweiterte Operationen können Lese- und Schreibvorgänge abschließen.
<?php $handle = fopen('./data.txt','r'); var_dump($handle); // resoure(3) of type (stream) 得到一个资源类型 ?>
Funktionen zum Lesen von Dateihandles fread(),fgetc(),fgets(),feof();
One byte data = fgetc(handle); //verstümmelte Zeichen bei Multibyte-Zeichen
Immer wenn ein Byte gelesen wird, bewegen Sie den Dateizeiger um ein Byte nach vorne! Bei Handle-Operationen kommt es auf den Dateizeiger an!
String = fgets(handle, length)
Wenn beim Lesen zuerst ein Newline-Zeichen gelesen wird, wird es ebenfalls beendet. Auch Zeilenlesefunktion genannt! Typische Logik: Jede Zeile zeichnet eine Reihe von Informationen auf. Diese Funktion wird am häufigsten verwendet!
feof() ermittelt, ob das Ende der Datei erreicht ist
Beispiel für das Auslesen aller Dateiinformationen:
<?php $handle = fopen('./langref.txt','r'); while (! feof($handle)) { $line = fgets($handle,1024); echo $line . "</br>"; } ?>
String = fread( handle, length)
Inhalt basierend auf der Länge lesen, die sich von fgets unterscheidet und nicht durch Zeilenumbrüche begrenzt ist
Die einzige Einschränkung ist: Die maximale Länge darf 8192 nicht überschreiten!
Datei-Handle-Schreibfunktion fwrite($handle, content)
Handle fclose($handle) schließen
Zeigerbetriebsfunktion
fseek(Griff, Position), Positionierungseinstellungszeiger, die Position beginnt bei 0 und erhöht sich!
ftell(handle), erhalte die Zeigerposition!
Standardmäßig befindet sich die Dateioperationsfunktion von PHP nicht in einem blockierenden Zustand. Freier Betriebszustand. Daher kann es leicht zu Fehlern kommen, wenn Dateien gleichzeitig ausgeführt werden. Wenn ein Skriptvorgang andere Skriptvorgänge blockieren muss, müssen Dateisperren verwendet werden.
Sperrvorgang:
Fügen Sie zuerst die Sperre hinzu, prüfen Sie, ob die Sperre erfolgreich hinzugefügt wurde, und verwenden Sie sie erneut, wenn sie erfolgreich ist!
Sperrtyp:
Lesesperre: S-Lock (Share-Lock) Shared Lock, die erwartete zusätzliche Sperre vor dem Lesevorgang. Dadurch sind gleichzeitige Lesevorgänge zulässig und zusätzliche Schreibvorgänge werden blockiert.
Schreibsperre: x-lock (exclusive-lock) exklusive Sperre, exklusive Sperre, versuchen Sie, den Sperrtyp vor dem Schreibvorgang hinzuzufügen. Dies hat zur Folge, dass andere Skripte weder lesen noch schreiben können.
Absichtssperre: Alle Skripte, die Ressourcen betreiben, folgen einer Konvention zur Verwendung von Dateisperren (Konvention).
flock($handle, lock type);
Typ:
LOCK_SH Lesesperre
LOCK_EX Schreibsperre
LOCK_UN Entsperren
<?php //*********脚本1,想要读取文件信息*********** //尝试加读锁 $lock_result= flock($handle, LOCK_SH); //判断锁定结果 if(!$lock_result){ die('锁定失败,不能操作文件'); } //文件操作 $str = fgets($handle, 1024); var_dump($str); sleep(5); echo '<br>'; $str = fgets($handle, 1024); var_dump($str); flock($handle, LOCK_UN);//解锁 ?> <?php //*********脚本2,想要往文件里写入信息*********** //尝试加写锁 $lock_result= flock($handle, LOCK_EX); //判断锁定结果 if(!$lock_result){ die('锁定失败,不能操作文件'); } //文件操作 $result = fwrite($handle, '123456'); flock($handle, LOCK_UN);//解锁 ?>
Wenn Kollegen ausführen, muss das obige Skript 2 (im blockierten Zustand) auf Skript 1 warten vollständige Ausführung. Betonen Sie, dass Sie beurteilen müssen, ob die Sperre erfolgreich hinzugefügt wurde
Sie können LOCK_NB verwenden, um nicht zu blockieren, wenn die Sperre fehlschlägt:
$lock_result = flock($handle, LOCK_EX | LOCK_NB);
Entsperren:
Flock($handle, LOCK_UN) zum Erzwingen des Entsperrens,
Fclose() zum automatischen Entsperren freischalten!
Verwandte Empfehlungen:
Beispielfreigabe für PHP-Dateivorgänge
Grundlegende Einführung in das Hochladen von PHP-Dateien
Teilen Sie ein einfaches Beispiel für das Hochladen einer PHP-Datei
Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung von Beispielen für den grundlegenden Betrieb einer PHP-Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!