(PHP 4, PHP 5, PHP 7)
fpassthru — Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
$handle
)Die Funktion liest alle Daten von der aktuellen Position des Dateizeigers bis EOF aus und schreibt die Daten in den Ausgabepuffer.
Eventuell müssen Sie rewind() aufrufen, um den Dateizeiger auf den Beginn der Datei zurückzusetzen, wenn Sie bereits Daten in die Datei geschrieben haben.
Wenn Sie den Inhalt einer Datei nur in den Ausgabepuffer schreiben wollen ohne diese ändern bzw. an eine bestimmte Stelle gehen wollen, sollten Sie besser readfile() benutzen, bei der Sie sich den Aufruf von fopen() ersparen.
handle
Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.
Wenn ein Fehler auftritt, gibt fpassthru() FALSE
zurück. Andernfalls gibt fpassthru() die Anzahl der
von handle
gelesenen und zur Ausgabe weitergeleiteten
Zeichen zurück.
Beispiel #1 Nutzung von fpassthru() mit binären Dateien
<?php
// Öffne Datei im binären Modus
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// Schicke passende Header Einträge
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// Gib Bild aus und stoppe Skript
fpassthru($fp);
exit;
?>
Hinweis:
Wenn Sie fpassthru() auf eine binäre Datei unter Windows anwenden, sollten Sie sicherstellen, dass die Datei im Binärmodus geöffnet wurde, indem Sie ein b an den Mode-Parameter von fopen() anhängen.
Auch wenn es Ihr System nicht verlangt, sollten Sie den b Flag bei Binärdateien verwenden, um die Portabilität Ihrer Skripte zu erhöhen.