PHP fpassthru() 函數

定義和用法

fpassthru() 函數輸出文件指針處的所有剩余數據。

該函數將給定的文件指針從當前的位置讀取到 EOF,并把結果寫到輸出緩沖區。

語法

fpassthru(file)
參數 描述
file 必需。規定要讀取的打開文件或資源。

說明

如果發生錯誤, fpassthru() 返回 false。否則 fpassthru() 返回從 file 讀取并傳遞到輸出的字符數目。

文件指針必須有效,并且必須指向一個由 fopen() 或 fsockopen() 成功打開(但還沒有被 fclose() 關閉)的文件。

提示和注釋

提示:如果已經向文件寫入數據,就必須調用 rewind() 來將文件指針指向文件頭。

提示:如果既不修改文件也不在特定位置檢索,只想將文件的內容下載到輸出緩沖區,應該使用 readfile(),這樣可以省去 fopen() 調用。

注釋:當在 Windows 系統中將 fpassthru() 用于二進制文件時,要確保在用 fopen() 打開文件時在 mode 中附加了 b 來將文件以二進制方式打開。鼓勵在處理二進制文件時使用 b 標志,即使系統并不需要,這樣可以使腳本的移植性更好。

實例

例子 1

<?php
$file = fopen("test.txt","r");
// 讀取第一行
fgets($file);
// 把文件的其余部分發送到輸出緩存
echo fpassthru($file);
fclose($file);
?>

輸出:

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

注:59 指示被傳遞的字符數。

例子 2

轉儲 www 服務器的 index 頁:

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