PHP Manual
后退 |  | 前进

# fpassthru

(PHP 3, PHP 4, PHP 5)

fpassthru -- 输出文件指针处的所有剩余数据

## 说明

int fpassthru ( resource handle )

将给定的文件指针从当前的位置读取到 EOF 并把结果写到输出缓冲区。

如果发生错误， fpassthru() 返回 `FALSE`。 否则 fpassthru() 返回从 handle 读取并传递到输出的字符数目。

文件指针必须有效，且必须指向由 fopen()，popen() 或 fsockopen() 成功打开的文件。 如果已经向文件写入了数据，可能需要调用 rewind() 来将文件指针指向文件头。当 fpassthru() 完成读取后就会关闭文件（使 handle 失效）。

如果既不修改文件也不在特定位置检索，只想将文件的内容下载到输出缓冲区，应该使用 readfile()，这样可以省去 fopen() 调用。

> 注: 当在 Windows 系统中将 fpassthru() 用于二进制文件时，要确保在用 fopen() 打开文件时在 mode 中附加了 b 来将文件以二进制方式打开。

> 鼓励在处理二进制文件时使用 b 标志，即使系统并不需要，这样可以使脚本的移植性更好。

例子 1. 对二进制文件使用 fpassthru()
`<?php // open the file in a binary mode $name = ".\public\dev\img\ok.png"; $fp = fopen($name, 'rb'); // send the right headers header("Content-Type: image/png"); header("Content-Length: ".filesize($name)); // dump the picture and stop the script fpassthru($fp); exit; ?>`

参见 readfile()，fopen()，popen() 和 fsockopen()。

后退 | 起点 | 前进
fopen | 上一级 | fputcsv