Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

WBOY
WBOYOriginal
2021-10-18 16:15:325070Durchsuche

Im vorherigen Artikel habe ich Ihnen „Die spannenden Grundlagen regulärer Ausdrücke in PHP (detaillierte Illustrationen)“ vorgestellt, in dem es hauptsächlich um die Grundkenntnisse regulärer PHP-Ausdrücke und deren Verwendung anhand von Beispielen geht. In diesem Artikel erfahren Sie weiterhin mehr über das PHP-Dateisystem. Hoffe, es hilft allen!

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

Wenn wir Computer benutzen, nutzen wir sie alle, um eine Datei zu öffnen und zu schließen, eine Datei zu erstellen oder eine Datei hochzuladen. Können diese Vorgänge also im Code ausgeführt werden? Wenn es möglich ist, wie sollte es durchgeführt werden? Tatsächlich ist es sehr einfach, die Dateiverarbeitung zu erlernen und sie mit dem zu kombinieren, was Sie zuvor gelernt haben. Werfen wir also als nächstes einen Blick darauf.

Das Lesen von Dateien ist einer der häufigsten Vorgänge in unserem täglichen Gebrauch. Wie implementieren wir ihn also im Code?

Lassen Sie uns vorstellen, wie Sie Funktionen in PHP zum Lesen von Dateiinhalten verwenden.

fgetc(): Liest ein Zeichen aus einer Datei fgetc():从文件中读取一个字符

在使用这些函数读取文件之前,我们需要先在服务器根目录下建立一个文本文件(这里我们以 text.txt 为例),文本内容如下:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

接下来我们来看一看,fgetc()在使用中应该怎样去用,输出的结果又是如何:

<?php
    header("Content-Type: text/html;charset=utf-8");   
    $handle = fopen(&#39;test.txt&#39;, &#39;r&#39;);             
   
$a = fgetc($handle)  ;
       echo $a; 
       
?>

输出结果:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

fgetc只能读取一个字符,我们可以利用之前讲到的循环来进行结合,就可以得到下面示例:

<?php
    header("Content-Type: text/html;charset=utf-8");    //设置字符编码
    $handle = fopen(&#39;test.txt&#39;, &#39;r&#39;);                 //打开文件
    if (!$handle) {                                     //判断文件是否打开成功
        echo &#39;文件打开失败!&#39;;
    }
    while (false !== ($char = fgetc($handle))) {        //循环读取文件内容
        echo $char;
    }
    fclose($handle);                                    //关闭文件
?>

输出结果:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

fgets()fgetss():逐行读取文件

<?php
    header("Content-Type: text/html;charset=utf-8");   
    $handle = fopen(&#39;test.txt&#39;, &#39;r&#39;);             
   
$a = fgets($handle)  ;
       echo $a; 
       
?>

输出结果:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

fgetss()函数是fgets()的一个变式,也是用来读取一行数据,读取的同时它还会过滤掉读取内容中的PHP和HTML标记,

可以看出,通过fgets可以逐行读取文件,同时可以和上文一样,我们可以利用循环来读取全部文件。

示例如下:

<?php
    $handle = @fopen("test.txt", "r");
    if ($handle) {
        while (($info = fgets($handle, 1024)) !== false) {
            echo $info.&#39;<br>&#39;;
        }
        fclose($handle);
    }                                
?>

输出结果:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

fread():读取文件(任意长度)

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

<?php
    $filename = "test.txt";
    $handle = fopen($filename, "r");
    $contents = fread($handle, &#39;6&#39;);
    echo &#39;从文件中读取 6 个字符长度:&#39;.$contents.&#39;<br>&#39;;
    rewind($handle);
    $contents = fread($handle, filesize($filename));
    echo &#39;读取全部的文件内容:&#39;.$contents;
    fclose($handle);
?>

输出结果:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

readfile():读取全部文件

<?php
    $file = &#39;test.txt&#39;;
    $info = readfile($file);
?>

输出结果:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

file():把整个文件读入一个数组中

<?php
    $file = &#39;test.txt&#39;;
    $arr  = file($file, FILE_IGNORE_NEW_LINES);
    $arr2 = file($file);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($arr);
    var_dump($arr2);
?>

输出结果:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

file_get_contents()

Bevor wir diese Funktionen zum Lesen von Dateien verwenden, müssen wir eine Textdatei im Stammverzeichnis des Servers erstellen (hier nehmen wir Text .txt als Beispiel), der Textinhalt ist wie folgt:


Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

Als nächstes werfen wir einen Blick darauf, wie fgetc() verwendet werden sollte und was die Ausgabeergebnisse sind: Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

<?php
    $a = &#39;test.txt&#39;;
   $b = file_get_contents($a);
   //因为每一行有一个回车即\n,我用\n来把这个字符串切割成数组
   $c = explode("\n", $b);
   //把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。
   while (list($key, $val) = each($c)) {
       ++$key;
       $val = trim($val);
       //用的单引号,单引号不解释变量进行了拼接而已
       print &#39;Line&#39; . $key .&#39;:&#39;.  $val.&#39;<br />&#39;;
   }
?>

Ausgabeergebnisse:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

fgetc kann nur ein Zeichen lesen, wir können das verwenden zuvor erwähnte Schleifen zu kombinieren, und wir können das folgende Beispiel erhalten: Wie lese ich Dateien in PHP? (Zusammenfassung teilen)

resource fopen ( string $文件名, string 模式)
string fread ( resource $操作资源, int 读取长度)
bool fclose ( resource $操作资源 )

Ausgabeergebnis:

Wie lese ich Dateien in PHP? (Zusammenfassung teilen)fgets() und fgetss(): eine nach der anderen Zeile lesende Datei

rrreee

Ausgabeergebnis:

  • png" alt="Wie lese ich Dateien in PHP? (Zusammenfassung teilen)"/>

  • Die Funktion fgetss() ist eine Variante von fgets() und wird auch zum Lesen einer Datenzeile verwendet. Beim Lesen , es wird auch PHP im gelesenen Inhalt und HTML-Tags herausfiltern,

    Es ist ersichtlich, dass die Datei Zeile für Zeile über fgets gelesen werden kann und wir gleichzeitig, wie oben, eine Schleife zum Lesen verwenden können die gesamte Datei.
  • Das Beispiel sieht wie folgt aus:

    rrreee🎜Ausgabeergebnis: 🎜🎜Wie lese ich Dateien in PHP? (Zusammenfassung teilen)🎜🎜🎜🎜fread(): Datei lesen (beliebige Länge)🎜🎜🎜🎜Wie lese ich Dateien in PHP? (Zusammenfassung teilen)🎜rrreee🎜Ausgabeergebnis: 🎜🎜🎜Wie lese ich Dateien in PHP? (Zusammenfassung teilen)🎜🎜🎜🎜readfile():Alle Dateien abrufen lesen 🎜🎜🎜rrreee🎜Ausgabeergebnis: 🎜🎜🎜Wie lese ich Dateien in PHP? (Zusammenfassung teilen)🎜🎜🎜🎜file(): Die gesamte Datei in ein Array einlesen🎜🎜🎜rrreee🎜Ausgabeergebnis: 🎜🎜Wie lese ich Dateien in PHP? (Zusammenfassung teilen)🎜🎜🎜🎜file_get_contents(): Lesen Sie die Datei in eine Zeichenfolge ein. 🎜🎜🎜🎜Zuerst erstellen wir eine test.txt-Datei. 🎜🎜 🎜🎜🎜Dies ist die Integration des Wissens, das wir gelernt haben. Zuerst haben wir die Datei über file_get_contents geöffnet und dann die Ausgabeergebnisse über die list every-Anweisung und die while-Schleife erhalten. 🎜🎜🎜🎜Erweiterte Kenntnisse: fopen-, fread-, fclose-Operation lesen🎜🎜🎜🎜Die obige file_get_contents-Methode zum Öffnen einer Datei ist einfach und grob, dann die nächsten paar🎜rrreee🎜Durch die oben genannten Funktionen werden wir die üblichen Ressourcentypen erklären Betriebsmethode: 🎜🎜🎜🎜Ressourcen öffnen🎜🎜🎜🎜Verwenden Sie verwandte Funktionen zum Bedienen🎜🎜🎜🎜Ressourcen schließen🎜

fopen-Funktion Die Funktion der fopen-Funktion besteht darin, eine Datei zu öffnen. Es gibt zwei Hauptparameter:

  • Der Pfad zum Öffnen der Datei

  • Der Modus zum Öffnen der Datei

Der Rückgabetyp ist ein Ressourcentyp und der Ressourcentyp erfordert andere Funktionen zum Betreiben dieser Ressource. Alle Ressourcen müssen geschlossen sein, wenn sie geöffnet werden.

Fread-Funktion: Die Funktion der Funktion besteht darin, die geöffnete Dateiressource zu lesen. Lesen Sie die Dateiressource der angegebenen Länge, lesen Sie einen Teil davon und verschieben Sie einen Teil nach hinten. bis zum Ende der Datei.

fclose-Funktion: Die Funktion der fclose-Funktion besteht darin, Ressourcen zu schließen. Ressourcen werden geöffnet und geschlossen.

Als nächstes möchte ich Ihnen den Modus der fopen-Funktion vorstellen:

  • r Öffnen Sie im schreibgeschützten Modus und richten Sie den Dateizeiger auf den Dateikopf. r    只读方式打开,将文件指针指向文件头。    

  • r+    读写方式打开,将文件指针指向文件头。    

  • w    写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建    

  • w+    读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建    

  • a    写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建    

  • a+    读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之    

  • x    创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建    

  • x+

r+ Öffnen Sie im Lese-/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-/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 existiert, versuchen Sie, sie zu erstellen 🎜🎜🎜🎜x Erstellen Sie sie und öffnen Sie sie zum Schreiben, indem Sie den Dateizeiger auf den Dateikopf richten. 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 🎜🎜🎜🎜x+ Erstellen und öffnen Sie 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🎜🎜🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonWie lese ich Dateien in PHP? (Zusammenfassung teilen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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