fpassthru
(PHP 4, PHP 5, PHP 7)
fpassthru — Выводит все оставшиеся данные из файлового указателя
Описание
$stream
) : intЧитает указанный файловый указатель с текущей позиции до EOF (конца файла) и записывает результат в буфер вывода.
Вам может понадобиться вызвать rewind(), чтобы сбросить файловый указатель на начало файла, если вы уже записывали данные в файл.
Если вы хотите просто сбросить содержимое файла в буфер вывода, предварительно не модифицируя его и не начиная с определённого смещения, вы можете воспользоваться readfile(), которая избавит вас от лишнего вызова fopen().
Список параметров
-
stream
-
Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытый функцией fclose()).
Возвращаемые значения
В случае возникновения ошибки fpassthru()
возвращает false
. Иначе fpassthru()
возвращает количество символов, прочтенных из
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