PHP-Dateiverarbeitung – wie man eine Datei liest (eine Zeile, die gesamte Datei)
Das Lesen und Schreiben von Dateien ist komplizierter als das Öffnen und Schließen von Dateien . Hier erklären wir hauptsächlich zwei Aspekte: Daten lesen und Daten schreiben.
Dann haben wir im vorherigen Artikel „PHP-Dateiverarbeitung – Öffnen und Schließen von Dateien“ das Öffnen und Schließen von Dateien als Voraussetzung für alle Dateioperationen eingeführt, und das Schließen ist die Voraussetzung dafür Das Ende der Datei. Heute stellen wir vor, wie man die Datei liest!
Daten aus der Datei lesen
Daten aus der Datei lesen, Sie können ein Zeichen, eine Zeichenfolge oder die gesamte Datei lesen. Sie können auch eine Zeichenfolge mit einer bestimmten Länge lesen.
1. Lesen Sie die gesamte Datei : readfile(), flie() und file_get_contents() drei Funktionen, wir werden sie unten einzeln vorstellen!
readfile()-Funktion
readfile()-Funktion wird verwendet, um eine Datei zu lesen und in den Ausgabepuffer zu schreiben. Wenn ein Fehler auftritt, gibt sie „false“ zurück. Das Funktionssyntaxformat lautet wie folgt:
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
Bei Verwendung der Funktion readfile () ist es nicht erforderlich, die Datei zu öffnen und zu schließen, und es sind keine Echo-, Print- und andere Ausgabeanweisungen erforderlich Schreiben Sie zuerst den Dateipfad.
flie()-Funktion
flie()-Funktion kann auch den Inhalt der gesamten Datei lesen, aber die file()-Funktion speichert den Dateiinhalt in einer Array-Zeile pro Zeile, einschließlich Zeilenumbrüchen, gibt false zurück, wenn der Lesevorgang fehlschlägt. Das Syntaxformat der Funktion ist wie folgt:
array file ( string $filename [, int $flags = 0 [, resource $context ]] )
file_get_contents()-Funktion
file_get_contents()-Funktion liest den Inhalt der Datei (fliename) in a Zeichenfolge. Wenn keine Offset- und Maxlen-Parameter vorhanden sind, wird eine Zeichenfolge mit der Länge Maxlen ab der durch den Offset-Parameter angegebenen Position gelesen. Wenn der Lesevorgang fehlschlägt, wird false zurückgegeben. Das Syntaxformat der Funktion lautet wie folgt:
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
Diese Funktion eignet sich für Binärdateien und ist die bevorzugte Methode, um den gesamten Dateiinhalt in eine Zeichenfolge einzulesen.
Das folgende Beispiel verwendet die oben genannten drei Funktionen, um den Dateiinhalt separat zu lesen. Der spezifische Code lautet wie folgt:
<html> <body> <table width="500" border="1" cellpadding="0" cellspacing="0" > <tr> <td width="253" height="100" align="right" valign="middle" scope="col">使用 readfile()函数读取文件内容:</td> <td width="241" height="100" valign="middle" scope="col"> <!--使用 readfile()函数读取tm.txt文件内容--> <?php readfile("tm.txt");?></td> </tr> <tr> <td height="100" align="right" valign="middle">使用 file()函数读取文件内容:</td> <td height="100" valign="middle" > <!--使用 file()函数读取tm.txt文件内容--> <?php $f_arr = file("tm.txt"); foreach ($f_arr as $cont){ echo $cont."<br>"; } ?> </td> </tr> <tr> <td width="250" height="25" align="right" valign="middle" scope="col">使用flie_get_contents()函数读取文件内容:</td> <td height="25" valign="middle" align="center" scope="col" > <!--使用 flie_get_contents()函数读取tm.txt文件内容--> <?php $f_chr = file_get_contents("tm.txt"); echo $f_chr; ?> </td> </tr> </table> </body> </html>
Das Ausgabeergebnis ist:
2. Lesen Sie eine Datenzeile: Funktion fgets() und Funktion fgetss()
(1) Funktion fgets()
Funktion fgets() wird verwendet, um jeweils eine Datenzeile zu lesen . Das Funktionssyntaxformat lautet wie folgt:
string fgets ( resource $handle [, int $length ] )
Das Parameterhandle ist die zu lesende Datei und die Parameterlänge ist die Länge der zu lesenden Daten. Die Funktion kann eine Zeile aus der durch handle angegebenen Datei lesen und eine Zeichenfolge mit einer maximalen Länge von 1 Byte zurückgeben. Stoppt mit Newline-Zeichen, EOF oder nach dem Lesen der Länge 1. Wenn der Parameter „length-1“ weggelassen wird, werden die Daten bis zum Ende der Zeile gelesen.
(2)fgetss()-Funktion
fgetss()-Funktion ist eine Variante der fgets()-Funktion, die zum Lesen einer Datenzeile verwendet wird. Gleichzeitig filtert die Funktion fgetss() HTML- und PHP-Tags im gelesenen Inhalt heraus. Die Funktionssyntax lautet wie folgt:
string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )
Diese Funktion kann alle HTML- und PHP-Tags aus der gelesenen Datei herausfiltern. Mit dem Parameter „allowable_tags“ können Sie steuern, welche Tags nicht herausgefiltert werden.
Das folgende Beispiel verwendet die obige Funktion, um jeweils eine Datei zu lesen und anzuzeigen. Beobachten Sie den Unterschied zwischen ihnen. Der spezifische Code lautet wie folgt:
<html> <body> <table border="1" cellpadding="0" cellspacing="0" > <tr> <td align="right" valign="middle" scope="col">使用fgets()函数:</td> <td valign="middle" scope="col" align="center"> <!--使用fgets()函数读取fun.php文件--> <?php $fopen = fopen("1.php","rb"); while (!feof($fopen)){ echo fgets($fopen); } fclose($fopen); ?></td> </tr> <tr> <td align="right" valign="middle">使用 fgetss()函数:</td> <td align="center" valign="middle" > <!--使用fgetss()函数读取--> <?php $fopen = fopen("1.php","rb"); while (!feof($fopen)){ echo fgetss($fopen); } fclose($fopen); ?></td> </tr> </table> </body> </html>
Das Ausgabeergebnis ist:
In diesem Artikel werden zwei Methoden zum Lesen von Dateien vorgestellt, eine davon ist das Lesen der Eine davon besteht darin, eine Datenzeile zu lesen. Im nächsten Artikel werde ich das Lesen eines Zeichens und einer Zeichenfolge mit einer bestimmten Länge vorstellen. Weitere Informationen finden Sie unter „PHP-Dateiverarbeitung – Datei lesen (ein Zeichen, eine Zeichenfolge). ) 》!
Das obige ist der detaillierte Inhalt vonUmgang mit PHP-Dateien – wie man eine Datei liest (eine Zeile, ganze Datei). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!