PHP fpassthru() 函数

定义和用法
fpassthru() 函数从打开文件的当前位置开始读取所有数据,直到文件末尾(EOF),并向输出缓冲写结果。
该函数返回传递的字符数,如果失败则返回 FALSE。
语法
fpassthru(file)
参数 | 描述 |
---|---|
file | 必需。规定要读取的打开文件或资源。 |
提示和注释
注释:当在 Windows 系统的二进制文件中使用 fpassthru() 函数时,请牢记,必须以二进制的模式打开文件。
提示:如果您已经向文件写入数据,就必须调用 rewind() 来将文件指针指向文件头。
提示:如果您只想将文件的内容输出到输出缓冲,而不对它进行修改,请使用 readfile() 函数代替,这样可以省去 fopen() 调用。
实例 1
<?php
$file = fopen("test.txt","r");
// Read first line
fgets($file);
// Send rest of the file to the output buffer
echo fpassthru($file);
fclose($file);
?>
$file = fopen("test.txt","r");
// Read first line
fgets($file);
// Send rest of the file to the output buffer
echo fpassthru($file);
fclose($file);
?>
上面的代码将输出:
There are three lines in this file.
This is the last line.59
This is the last line.59
59 指示被传递的字符数。
实例 2
转储 www 服务器的索引页:
<?php
$file = fopen("http://www.example.com","r");
fpassthru($file);
?>
$file = fopen("http://www.example.com","r");
fpassthru($file);
?>

千年的回眸
Function Time (s) Memory (b)
32Kb File 1Mb File 32Kb File 1Mb File
file_get_contents 0.00152 0.00564 52480 1067856
fgets 0.00195 0.07190 30760 30768
file 0.00157 0.06464 87344 2185624
require_once 0.00225 0.08065 67992 2067696
include 0.00222 0.08202 67928 2067624
readfile 0.00117 0.00191 19192 19208
fpassthru 0.00117 0.00184 20016 20032
readfile and fpassthru have once again tied for first place.
This new set of results just confirms the fact that speed and scalability comes from your design and not from your code.
The difference between the best performance and the worst is just 0.00108s too close to call.