PHP fpassthru() 函數(shù)
定義和用法
fpassthru() 函數(shù)輸出文件指針處的所有剩余數(shù)據(jù)。
該函數(shù)將給定的文件指針從當前的位置讀取到 EOF,并把結(jié)果寫到輸出緩沖區(qū)。
語法
fpassthru(file)
參數(shù) | 描述 |
---|---|
file | 必需。規(guī)定要讀取的打開文件或資源。 |
說明
如果發(fā)生錯誤, fpassthru() 返回 false。否則 fpassthru() 返回從 file 讀取并傳遞到輸出的字符數(shù)目。
文件指針必須有效,并且必須指向一個由 fopen() 或 fsockopen() 成功打開(但還沒有被 fclose() 關(guān)閉)的文件。
提示和注釋
提示:如果已經(jīng)向文件寫入數(shù)據(jù),就必須調(diào)用 rewind() 來將文件指針指向文件頭。
提示:如果既不修改文件也不在特定位置檢索,只想將文件的內(nèi)容下載到輸出緩沖區(qū),應該使用 readfile(),這樣可以省去 fopen() 調(diào)用。
注釋:當在 Windows 系統(tǒng)中將 fpassthru() 用于二進制文件時,要確保在用 fopen() 打開文件時在 mode 中附加了 b 來將文件以二進制方式打開。鼓勵在處理二進制文件時使用 b 標志,即使系統(tǒng)并不需要,這樣可以使腳本的移植性更好。
例子
例子 1
<?php $file = fopen("test.txt","r"); // 讀取第一行 fgets($file); // 把文件的其余部分發(fā)送到輸出緩存 echo fpassthru($file); fclose($file); ?>
輸出:
There are three lines in this file. This is the last line.59
注:59 指示被傳遞的字符數(shù)。
例子 2
轉(zhuǎn)儲 www 服務器的 index 頁:
<?php $file = fopen("http://www.example.com","r"); fpassthru($file); ?>