(PHP 4, PHP 5)
fpassthru — Изкарва всичките оставащи данни от файлов указател
При подаден файлов указател изчита до края на файла, стартирайки от текущата позиция, всички данни и ги записва в изходящия буфер.
Може да се нуждаете от извикване на rewind(), за да върнете файловия указател в началото на файла ако вече сте записвали в него. Файлът се затваря, когато fpassthru() приключи с четенето (правейки handle неизползваем).
Ако просто искате да изкарате съдържанието на файл във изходящия буфер, без преди това да записвате в него или да позиционирате на дадено отместване, можете да използвате readfile(), която ще ви спести извикването на fopen().
Файловият указател трябва да бъде валиден, и трябва да сочи към файл, който е бил отворен успешно чрез функция fopen() или fsockopen() (и все още да не е затворен от fclose()).
При грешка, fpassthru() връща FALSE. При успех връща броя на прочетените от handle символи и записани в изходящия буфер.
Example #1 Използване на fpassthru() с двоични файлове
<?php
// отваряне на дайл в двоичен режим
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// изкарай данните на картинката
fpassthru($fp);
exit;
?>
Забележка: Когато използвате fpassthru() за двоични файлове под Windows трябва да се сте отворили файла в двоичен режим (чрез добавяне на b към режима за отваряне) при извикването на fopen().
Насърчава се използването на флаг b, когато имате работа с двоични файлове, дори когато операционната система не го изисква, като по този начин вашите скриптове ще са по-преносими (между различнитв ОС).