在PHP 中流式處理大檔案
PHP 內建的file_get_contents 函數是將檔案讀入字串的便捷方法,但它有一個重要的限制:它一次將整個文件載入到記憶體中。對於大檔案來說,這可能會出現問題,因為它可能會耗盡 PHP 記憶體限制並導致腳本失敗。
幸運的是,有一些方法可以將大檔案串流傳輸給用戶,而無需將其全部載入記憶體。一種技術涉及使用 readfile_chunked 函數。此函數以檔案名稱作為參數,並將檔案內容以指定大小的區塊形式傳送至輸出緩衝區。
以下是如何使用 readfile_chunked 函數的範例:
在此範例中,我們定義 CHUNK_SIZE 常數來指定每個區塊的大小(以位元組為單位)。然後 readfile_chunked 函數分塊讀取檔案並將它們傳送到輸出緩衝區。呼叫 ob_flush 和 flash 函數以確保區塊在生成時傳送到客戶端。
此技術可讓您將大檔案串流傳輸給用戶,而無需將整個檔案載入記憶體。這是透過 HTTP 連線傳送大檔案的有效方法。
以上是如何在 PHP 中串流大檔案而不將它們完全載入到記憶體中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!