Zum Inhalt springen

fpassthru()

Was ist die fpassthru()-Funktion?

Die Funktion fpassthru() ist eine integrierte PHP-Funktion, die den Inhalt einer Datei ab der aktuellen Position des Dateizeigers bis zum Dateiende liest und direkt in den Standard-Ausgabestream schreibt. Diese Funktion wird verwendet, um große Dateien zu lesen, ohne sie in den Speicher zu laden.

Bei Erfolg gibt sie die Anzahl der geschriebenen Bytes vom angegebenen Dateizeiger zur Ausgabe zurück, andernfalls false.

Hier ist die grundlegende Syntax der Funktion fpassthru():

Die PHP-Syntax von fpassthru()

php
fpassthru(file);

Wobei file der Dateizeiger ist, von dem gelesen werden soll.

So verwenden Sie die fpassthru()-Funktion?

Die Verwendung der Funktion fpassthru() ist unkompliziert. Befolgen Sie die folgenden Schritte:

  1. Öffnen Sie die Datei mit fopen() und stellen Sie sicher, dass sich der Dateizeiger an der gewünschten Startposition befindet.
  2. Rufen Sie fpassthru() mit dem Dateizeiger auf. Sie liest bis zum Dateiende (EOF) und schreibt in den Ausgabestream.
  3. Überprüfen Sie den Rückgabewert zur Bestätigung des Erfolgs und schließen Sie die Datei anschließend mit fclose().

Hier ist ein Beispielcode-Snippet, das die Verwendung der Funktion fpassthru() veranschaulicht:

So verwenden Sie die fpassthru()-Funktion?

php
<?php

$filename = 'largefile.txt';
$file = fopen($filename, 'r');
if ($file) {
   if (fpassthru($file) === false) {
      echo "Error reading file!";
   }
   fclose($file);
} else {
   echo "Unable to open file!";
}

In diesem Beispiel öffnen wir die Datei largefile.txt mit der Funktion fopen() im Nur-Lese-Modus. Wir prüfen mit einer if-Bedingung, ob die Datei erfolgreich geöffnet wurde, und geben falls ja den Inhalt der Datei mit der Funktion fpassthru() in den Standard-Ausgabestream aus. Wir überprüfen den Rückgabewert, um mögliche Lesefehler zu behandeln, bevor wir die Datei mit der Funktion fclose() schließen.

Hinweis zur Ausgabe-Pufferung: Wenn die PHP-Ausgabepufferung aktiv ist (z. B. über ob_start()), schreibt fpassthru() direkt in den aktuellen Ausgabepuffer, anstatt die Daten sofort an den Browser zu senden.

Fazit

Die Funktion fpassthru() ist ein nützliches Werkzeug in PHP, um große Dateien zu lesen, ohne sie in den Speicher zu laden. Durch Befolgen der in diesem Leitfaden beschriebenen Schritte können Sie die Funktion fpassthru() problemlos in Ihren PHP-Projekten verwenden, um den Inhalt von Dateien ab der aktuellen Zeigerposition zu lesen und in den Standard-Ausgabestream auszugeben.

Practice

Was ist der Zweck der fpassthru()-Funktion in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.