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

(PHP 4, PHP 5, PHP 7)

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

说明

fpassthru(resource $handle): int

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

如果已经向文件写入数据,就必须调用rewind()来将文件指针指向文件头。

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

参数

handle

文件指针必须是有效的,必须指向由fopen()fsockopen()成功打开的文件(并还未由fclose()关闭)。

返回值

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

范例

Example #1 对二进制文件使用fpassthru()

<?php

// 以二进制格式打开文件
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// 发送合适的报头
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// 发送图片并终止脚本
fpassthru($fp);
exit;

?>

注释

当在 Windows 系统中将fpassthru()用于二进制文件,要确保在用fopen()打开文件时在 mode 中附加了b来将文件以二进制方式打开。 鼓励在处理二进制文件时使用b标志,即使系统并不需要,这样可以使脚本的移植性更好。

淘宝 adsense 商品推荐

google adsense admoi联盟推广 站长变现

价格:10元

参见

readfile()- 输出文件

fopen()- 打开文件或者 URL

popen()- 打开进程文件指针

fsockopen()- 打开一个网络连接或者一个Unix套接字连接