
- PHP 教程
- PHP - 首頁
- PHP - 路線圖
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP - 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別混淆
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與 I/O
- PHP - 數學函式
- PHP - Heredoc & Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期與時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 比較符
- PHP 控制語句
- PHP - 決策制定
- PHP - If…Else 語句
- PHP - Switch 語句
- PHP - 迴圈型別
- PHP - For 迴圈
- PHP - Foreach 迴圈
- PHP - While 迴圈
- PHP - Do…While 迴圈
- PHP - Break 語句
- PHP - Continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理 CSV 檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件的 PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - Traits
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - Final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET & POST
- PHP - 檔案上傳
- PHP - Cookie
- PHP - Session
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 過濾輸入
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 編碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - Try…Catch
- PHP - Bug 除錯
- PHP - 針對 C 開發者
- PHP - 針對 PERL 開發者
- PHP - 框架
- PHP - Core PHP vs. 框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 認證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 預期
- PHP - Use 語句
- PHP - 整數除法
- PHP - 已棄用的特性
- PHP - 已移除的擴充套件和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP 檔案系統 fpassthru() 函式
PHP 檔案系統fpassthru()函式用於讀取從開啟檔案中的當前位置到檔案結尾 (EOF) 的所有資料。它還可以將結果寫入輸出緩衝區。此函式可以返回傳遞的字元數,或者在失敗時返回 false。
當我們在 Windows 系統上的二進位制檔案中使用fpassthru()函式時,必須以二進位制模式開啟檔案。
語法
以下是 PHP 檔案系統fpassthru()函式的語法:
int fpassthru ( resource $handle )
引數
使用fpassthru()函式所需的引數如下:
序號 | 引數及說明 |
---|---|
1 |
handle (必需) 這是由 fopen() 建立的檔案指標資源。 |
返回值
它返回從檔案指標讀取的位元組數。如果發生錯誤,它將返回 FALSE。
PHP 版本
fpassthru()函式最初作為核心 PHP 4 的一部分引入,並且與 PHP 5、PHP 7、PHP 8 相容良好。
示例
在下面的 PHP 程式碼中,我們將開啟一個檔案並讀取它的第一行。接下來,它使用 PHP 檔案系統fpassthru()函式將檔案的其餘部分(從第二行開始)回顯到輸出緩衝區。
<?php $file = fopen("/PhpProject/sample.txt", "r"); // Read first line fgets($file); // Send rest of the file to the output buffer echo fpassthru($file); fclose($file); ?>
輸出
上述 PHP 程式碼的輸出為:
Tutorix7
示例
在這個示例中,我們將開啟一個檔案並定義下載檔案的標頭。它透過使用fpassthru()函式將檔案傳送到使用者的瀏覽器來啟動檔案下載。
<?php // Define the file path and open it $file = fopen("/Applications/XAMPP/xamppfiles/htdoc/mac/myfile.txt", "rb"); //Define the content type header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename='example.txt'"); //Send data of file to browser fpassthru($file); //Close the file fclose($file); ?>
輸出
這將生成以下結果:
# The provided code will result in a file download prompt on the user's browser. The content is being received directly from the server, and the file that is being downloaded is called "myfile.txt".
示例
在這個示例中,我們將開啟一個 JPEG 圖片檔案,並設定相應的 content-type 標頭。我們將使用fpassthru()函式將影像內容直接輸出到瀏覽器。
<?php // Open the image file here $image = fopen("image.jpg", "rb"); //Define the content type header("Content-Type: image/jpeg"); // Send image file to browser fpassthru($image); //Close the file fclose($image); ?>
輸出
這將產生以下結果:
The output of this code would be displaying the image "image.jpg" directly in the browser.
示例
現在,我們將嘗試使用fpassthru()函式和將內容型別定義為影片來流式傳輸影片檔案。
因此,程式碼開啟 "video.mp4" 影片檔案並將影片內容型別標頭設定為 video/mp4。此外,"Accept-Ranges" 標頭用於方便在影片內搜尋。
<?php // Open the video file here $video = fopen("video.mp4", "rb"); //Define the content type as video or mp4 header("Content-Type: video/mp4"); header("Accept-Ranges: bytes"); //Send data to the user's browser fpassthru($video); //Close the file here fclose($video); ?>
輸出
這將導致以下結果:
# The output of this code will be streaming the video "video.mp4" directly in the browser's video player.
注意
在呼叫fpassthru()之前,務必使用 header() 等函式建立正確的標頭,以定義內容型別並開始必要的操作,例如檔案下載或內聯顯示。
總結
fpassthru()方法將檔案內容直接流式傳輸到瀏覽器或輸出緩衝區,此函式的特性使其成為管理檔案下載、流式傳輸影片或類似場景的 Web 應用程式的有用工具。