flush()
函數在 PHP 中用于將緩沖區的內容立即發送到瀏覽器,而不是等待腳本執行完畢。這可以減少延遲,因為它允許瀏覽器更快地接收和處理數據。
然而,需要注意的是,并非所有服務器配置都支持 flush()
函數。在某些情況下,服務器可能會禁用此功能以提高性能。此外,瀏覽器也可能不支持或不立即處理 flush()
發送的數據。
在使用 flush()
時,請確保您的服務器和瀏覽器支持此功能,并根據需要調整代碼。以下是一個簡單的示例:
<?php
// 關閉輸出緩沖
while (ob_get_level()) {
ob_end_clean();
}
// 發送 HTTP 頭信息
header('Content-Type: text/html; charset=utf-8');
header('Connection: Keep-Alive');
header('Cache-Control: max-age=0');
header('Pragma: no-cache');
// 輸出內容
echo '<html>';
echo '<head>';
echo '<title>Flush Example</title>';
echo '</head>';
echo '<body>';
echo '<h1>Hello, World!</h1>';
// 清空輸出緩沖并發送數據到瀏覽器
ob_implicit_flush(1);
for ($i = 0; $i < 5; $i++) {
echo "Output part $i<br>";
ob_flush();
flush();
sleep(1);
}
echo '</body>';
echo '</html>';
?>
在這個示例中,我們首先關閉輸出緩沖,然后發送 HTTP 頭信息,接著輸出內容,并在每次輸出后使用 ob_flush()
和 flush()
將數據發送到瀏覽器。這將允許瀏覽器在腳本執行過程中逐步顯示內容,從而減少延遲。