fpassthru

(PHP 3, PHP 4, PHP 5)

fpassthru -- 輸出檔案指標處的所有剩餘資料

說明

int fpassthru ( resource handle )

將給定的檔案指標從現用的的位置讀取到 EOF 並把結果寫到輸出緩沖區。

若果發生錯誤, fpassthru() 返回 FALSE。否則 fpassthru() 返回從 handle 讀取並傳遞到輸出的字元數目。

檔案指標必須有效,並且必須指向一個由 fopen()fsockopen() 成功開啟(但還沒有被 fclose() 關閉)的檔案。

若果已經向檔案寫入資料,就必須呼叫 rewind() 來將檔案指標指向檔案頭。

若果既不修改檔案也不在特定位置檢索,只想將檔案的內容下載到輸出緩沖區,應該使用 readfile(),這樣可以省去 fopen() 呼叫。

注: 當在 Windows 系統中將 fpassthru() 用於二進位檔案時,要確保在用 fopen() 開啟檔案時在 mode 中附加了 b 來將檔案以二進位模式開啟。

鼓勵在處理二進位檔案時使用 b 標誌,即使系統並不需要,這樣可以使腳本的移植性更好。

例子 1. 對二進位檔案使用 fpassthru()

<?php

// 以二進位格式開啟檔案
$name './img/ok.png'
$fp fopen($name'rb');

// 傳送合適的報頭
header("Content-Type: image/png");
header("Content-Length: " filesize($name));

// 傳送圖片並終止腳本
fpassthru($fp);
exit;

?>

參見 readfile()fopen()popen()fsockopen()