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); ?>