輸出檔案指針處的所有剩餘數據

fpassthru

(PHP 4, PHP 5, PHP 7, PHP 8)

fpassthru輸出檔案指針處的所有剩餘數據

說明

fpassthru(resource $handle): int

將給定的檔案指針從目前的位置讀取到 EOF 並把結果寫到輸出緩衝區。

如果已經向檔案寫入數據,就必須呼叫 rewind() 來將檔案指針指向檔案頭。

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

參數

handle

檔案指針必須是有效的,必須指向由 fopen()fsockopen() 成功打開的檔案(並還未由 fclose() 關閉)。

返回值

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

範例

示例 #1 對二進制檔案使用 fpassthru()

<?php

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

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

// 發送圖片並終止指令碼
fpassthru($fp);
exit;

?>

註釋

注意:

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

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

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *