PHP fpassthru() 函数

定义和用法

fpassthru() 函数输出文件指针处的所有剩余数据。

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

语法

  1. fpassthru(file)
参数 描述
file 必需。规定要读取的打开文件或资源。

说明

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

文件指针必须有效,并且必须指向一个由 fopen() 或 fsockopen() 成功打开(但还没有被 fclose() 关闭)的文件。

提示和注释

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

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

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

例子

例子 1

  1. <?php
  2. $file = fopen("test.txt","r");
  3.  
  4. // 读取第一行
  5. fgets($file);
  6.  
  7. // 把文件的其余部分发送到输出缓存
  8. echo fpassthru($file);
  9.  
  10. fclose($file);
  11. ?>

输出:

  1. There are three lines in this file.
  2. This is the last line.59

注:59 指示被传递的字符数。

例子 2

转储 www 服务器的 index 页:

  1. <?php
  2. $file = fopen("http://www.example.com","r");
  3. fpassthru($file);
  4. ?>