Heim >Backend-Entwicklung >PHP-Tutorial >Schneller Tipp: So lesen Sie eine lokale Datei mit PHP

Schneller Tipp: So lesen Sie eine lokale Datei mit PHP

William Shakespeare
William ShakespeareOriginal
2025-02-08 13:35:11509Durchsuche

Quick Tip: How To Read a Local File with PHP

PHP bietet drei native Funktionen für lokale Dateioperationen: file(), file_get_contents() und fopen(). Obwohl vollständige Bibliotheken in diesen Funktionen aufgebaut sind, sind sie immer noch die bevorzugte Methode, um schnell PHP -Dateien zu manipulieren.

Wir werden zuerst die Funktionen dieser Funktionen verstehen und uns dann ihre Arbeitsbeispiele ansehen.

file() und file_get_contents()

file() und file_get_contents() arbeiten sehr ähnlich. Sie alle lesen die gesamte Datei. file() liest die Datei jedoch in ein Array, während file_get_contents() die Datei in eine Zeichenfolge liest. Beide Funktionen sind binär sicher, dh sie können für jede Art von Dateiinhalten verwendet werden.

Seien Sie besonders vorsichtig, wenn Sie file() verwenden, da das Array, das es zurückgibt, durch Newlines getrennt wird. Jedes Element wird jedoch weiterhin mit einer Kündigung neuer Linie angehängt.

fopen()

fopen() Funktionen funktionieren ganz anders. Es wird einen Dateideskriptor geöffnet, der als Stream zum Lesen oder Schreiben in die Datei fungiert.

Das PHP -Handbuch erklärt Folgendes:

In seiner einfachsten Form ist ein Stream ein Ressourcenobjekt, das streamables Verhalten aufweist. Das heißt, es kann linear gelesen oder geschrieben werden, und es kann möglich sein, mit fseek() überall im Stream zu springen.

Einfach ausgedrückt. Wenn Sie fopen() anrufen, wird es nichts tun, es öffnet nur einen Stream.

Wenn Sie den Stream öffnen und das Dateihandle haben, können Sie andere Funktionen wie fread() und fwrite() verwenden, um die Datei zu manipulieren. Sobald Sie fertig sind, können Sie fclose() verwenden, um den Stream zu schließen.

Beispiel

Das folgende Beispiel anzeigen:

<code class="language-php"><?php
    $filepath = "/usr/local/sitepoint.txt";
    $handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename));
    fclose($handle);</code>

Die oben genannten Funktionen erhalten Ihnen mehr granuläre Kontrolle über die Dateien, sind jedoch viel niedriger als die file() oder file_get_contents() Funktionen, die wie in der PHP -Dokumentation angegeben sind:

file_get_contents() ist die bevorzugte Methode zum Lesen von Dateiinhalten in Zeichenfolgen. Wenn Ihr Betriebssystem es unterstützt, verwendet es die Speicher -Swap -Technologie, um die Leistung zu verbessern.

file_get_contents() Es ist ziemlich einfach zu bedienen:

<code class="language-php"><?php
    $file_contents = file_get_contents('./file.txt');</code>

Dies wird den Inhalt von file.txt in $file_contents gelesen.

Wenn wir nur einen Teil der Datei benötigen, können wir dies tun:

<code class="language-php"><?php
    $file_contents = file_get_contents('./file.txt', FALSE, NULL, 20, 14);</code>

Dies lautet file.txt 14 Zeichen, beginnend mit dem 20. Charakter. Weitere Informationen zu allen Parametern von file_get_contents() finden Sie in der offiziellen Dokumentation.

FAQ zum Lesen lokaler Dateien in PHP

Was ist der Unterschied zwischen

file_get_contents() und fopen() in PHP?

file_get_contents() und fopen() werden beide verwendet, um Dateien in PHP zu lesen, aber sie funktionieren etwas anders. file_get_contents() Lesen Sie die Datei in eine Zeichenfolge und geben Sie die gesamte Datei als einzelne Zeichenfolge zurück. Diese Funktion ist einfach und einfach zu bedienen, ist jedoch nicht für große Dateien geeignet, da sie viel Speicher verbrauchen kann. Andererseits öffnet fopen() eine Datei oder URL und gibt eine Ressource zurück, die mit anderen filzbezogenen Funktionen wie fgets() oder fwrite() verwendet werden kann. Diese Funktion ist für große Dateien flexibler und effizienter, da die Dateienzeile für Zeile gelesen werden.

Wie kann ich beim Lesen von Dateien in PHP Fehler umgehen?

PHP bietet verschiedene Möglichkeiten, Fehler beim Lesen von Dateien zu behandeln. Ein allgemeiner Ansatz ist die Verwendung des "@" -Operators vor der Funktion, um Fehlermeldungen zu unterdrücken. Eine andere Möglichkeit besteht darin, die Funktion file_exists() zu verwenden, um zu überprüfen, ob die Datei vorhanden ist, bevor Sie versuchen, sie zu lesen. Sie können auch die Funktion is_readable() verwenden, um zu überprüfen, ob die Datei lesbar ist. Wenn ein Fehler auftritt, gibt diese Funktionen false zurück, sodass Sie den Fehler anmutig behandeln können.

Kann ich Dateien von einem Remote -Server in PHP lesen?

Ja, PHP ermöglicht es Ihnen, Dateien von einem Remote -Server mithilfe der Funktionen file_get_contents() oder fopen() zu lesen (mithilfe einer URL anstelle eines lokalen Dateipfads). Aus Sicherheitsgründen kann diese Funktion jedoch auf einigen Servern deaktiviert sein. Sie können überprüfen, ob es aktiviert ist, indem die Einstellungen php.ini in der Datei allow_url_fopen angezeigt werden.

Wie lesen Sie eine bestimmte Zeile einer Datei in PHP?

PHP liefert keine integrierten Funktionen, um bestimmte Zeilen einer Datei zu lesen. Sie können dies jedoch tun, indem Sie die Datei mithilfe der Funktion file() in ein Array lesen und dann auf die erforderlichen Zeilen zugreifen, indem Sie sie indizieren. Denken Sie daran, dass der Index bei 0 beginnt, sodass die erste Zeile bei Index 0, die zweite Zeile in Index 1 und so weiter.

Wie lesen Sie Dateien im Binärmodus in PHP?

Um Dateien im Binärmodus in PHP zu lesen, können Sie die Funktion fopen() mit dem Flag "B" verwenden. Dies ist insbesondere für das Lesen von Binärdateien wie Bildern oder ausführbaren Funktionen nützlich. Nach dem Öffnen der Datei können Sie sie mit der Funktion fread() lesen, die die Daten als binäre Zeichenfolge zurückgibt.

Wie lesen Sie CSV -Dateien in PHP?

PHP bietet die Funktion fgetcsv() zum Lesen von CSV -Dateien. Diese Funktion analysiert das Feld CSV -Format der von es gelesenen Zeilen und gibt ein Array von Lesefeldern zurück. Sie können diese Funktion für Loops verwenden, um die gesamte CSV -Datei zu lesen.

Wie kann man eine Datei in PHP umgekehrt lesen?

PHP liefert keine integrierten Funktionen zum Lesen von Dateien umgekehrt, aber Sie können dies tun, indem Sie Dateien mithilfe der Funktion file() in ein Array in ein Array lesen und das Array mithilfe der Funktion array_reverse() umkehren.

Wie lesen Sie eine Datei in PHP, ohne sie zu sperren?

standardmäßig sperrt PHP beim Lesen keine Dateien. Wenn Sie jedoch sicherstellen müssen, dass die Datei nicht gesperrt ist, können Sie die Funktion LOCK_SH mit dem Flag flock() verwenden, bevor Sie die Datei lesen. Diese Funktion wird versuchen, das gemeinsame Sperre zu erwerben, sodass andere Prozesse gleichzeitig die Datei lesen können.

Wie kann ich große Dateien in PHP effizient lesen?

Um große Dateien effizient in PHP zu lesen, können Sie die Funktion fopen() verwenden, um die Datei zu öffnen und dann die Funktion fgets() in der Schleife zu verwenden, um die Dateizeile für Zeile zu lesen. Diese Methode ist mehr Speichersparung als das Lesen der gesamten Datei in eine Zeichenfolge oder ein Array, da sie nur die aktuelle Zeile im Speicher speichert.

Wie lesen Sie Dateien in PHP und geben Inhalte in den Browser aus?

Um Dateien in PHP zu lesen und den Inhalt in den Browser auszugeben, können Sie die Funktion readfile() verwenden. Diese Funktion liest die Datei und schreibt sie in den Ausgabebuffer und sendet sie dann an den Browser. Dies ist eine bequeme Möglichkeit, dem Benutzer Dateien (z. B. Bilder oder herunterladbare Dateien) bereitzustellen.

Das obige ist der detaillierte Inhalt vonSchneller Tipp: So lesen Sie eine lokale Datei mit PHP. 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