fpassthru()
函數是 PHP 中用于將數據流(如文件)直接傳輸到輸出流(如瀏覽器)的函數
fpassthru()
可以避免一次性加載整個文件到內存中,從而提高性能。fpassthru()
是一個很好的選擇。move_uploaded_file()
配合使用:當用戶通過 HTTP POST 上傳文件時,你可能希望將文件保存到服務器上的某個位置,并立即將其傳輸給用戶。在這種情況下,你可以使用 move_uploaded_file()
將文件移動到新位置,然后使用 fpassthru()
將文件內容傳輸給用戶。stream_context_create()
配合使用:如果你需要通過網絡傳輸文件,并且希望對其進行一些自定義設置(例如,設置超時時間或代理服務器),那么你可以使用 stream_context_create()
創建一個上下文,然后將其傳遞給 fpassthru()
。下面是一個簡單的示例,演示了如何使用 fpassthru()
函數將文件從服務器傳輸到瀏覽器:
<?php
// 打開要傳輸的文件
$filename = 'path/to/your/file.txt';
$handle = fopen($filename, 'rb');
if ($handle === false) {
die('Error opening file: ' . $filename);
}
// 使用 fpassthru() 將文件內容直接傳輸到瀏覽器
fpassthru($handle);
// 關閉文件句柄
fclose($handle);
?>
在這個示例中,我們首先使用 fopen()
函數以二進制讀取模式打開文件。然后,我們使用 fpassthru()
函數將文件內容直接傳輸到瀏覽器。最后,我們使用 fclose()
函數關閉文件句柄。