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