fpassthru

(PHP 4, PHP 5, PHP 7, PHP 8)

fpassthruВыводит все оставшиеся данные из файлового указателя

Описание

fpassthru(resource $stream): int

Читает указанный файловый указатель с текущей позиции до EOF (конца файла) и записывает результат в буфер вывода.

Вам может понадобиться вызвать rewind(), чтобы сбросить файловый указатель на начало файла, если вы уже записывали данные в файл.

Если вы хотите просто сбросить содержимое файла в буфер вывода, предварительно не модифицируя его и не начиная с определённого смещения, вы можете воспользоваться readfile(), которая избавит вас от лишнего вызова fopen().

Список параметров

stream

Требуется допустимый файловый указатель, который указывает на файл, который успешно открыли функцией fopen() или функцией fsockopen(), и ещё не закрыли функцией fclose().

Возвращаемые значения

Возвращает количество символов, прочтённых из stream и переданных на вывод.

Примеры

Пример #1 Использование fpassthru() с бинарными файлами

<?php

// открываем файл в бинарном режиме
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// отправляем нужные заголовки
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// сбрасываем картинку и останавливаем выполнение скрипта
fpassthru($fp);
exit;

?>

Примечания

Замечание:

При использовании fpassthru() на бинарном файле в Windows, вы должны убедиться в том, что открыли файл в бинарном режиме при помощи добавления b к режиму открытия файла, использованному в fopen().

Рекомендуется использовать флаг b при работе с бинарными файлами, даже если ваша система этого не требует, чтобы обеспечить более высокую портируемость скриптов.

Смотрите также

  • readfile() - Выводит файл
  • fopen() - Открывает файл или URL-адрес
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с сокетом интернет- или Unix-домена