PHP fpassthru() 函數(shù)
定義和用法
fpassthru() 函數(shù)輸出文件指針處的所有剩余數(shù)據(jù)。
該函數(shù)將給定的文件指針從當(dāng)前的位置讀取到 EOF,并把結(jié)果寫到輸出緩沖區(qū)。
語(yǔ)法
fpassthru(file)
參數(shù) | 描述 |
---|---|
file | 必需。規(guī)定要讀取的打開文件或資源。 |
說(shuō)明
如果發(fā)生錯(cuò)誤, fpassthru() 返回 false。否則 fpassthru() 返回從 file 讀取并傳遞到輸出的字符數(shù)目。
文件指針必須有效,并且必須指向一個(gè)由 fopen() 或 fsockopen() 成功打開(但還沒有被 fclose() 關(guān)閉)的文件。
提示和注釋
提示:如果已經(jīng)向文件寫入數(shù)據(jù),就必須調(diào)用 rewind() 來(lái)將文件指針指向文件頭。
提示:如果既不修改文件也不在特定位置檢索,只想將文件的內(nèi)容下載到輸出緩沖區(qū),應(yīng)該使用 readfile(),這樣可以省去 fopen() 調(diào)用。
注釋:當(dāng)在 Windows 系統(tǒng)中將 fpassthru() 用于二進(jìn)制文件時(shí),要確保在用 fopen() 打開文件時(shí)在 mode 中附加了 b 來(lái)將文件以二進(jìn)制方式打開。鼓勵(lì)在處理二進(jìn)制文件時(shí)使用 b 標(biāo)志,即使系統(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)儲(chǔ) www 服務(wù)器的 index 頁(yè):
<?php $file = fopen("http://www.example.com","r"); fpassthru($file); ?>