函式名稱:ob_implicit_flush()
函式描述:ob_implicit_flush() 函式將輸出緩衝區的自動重新整理設定為開啟或關閉,在輸出緩衝區沒有被顯式地重新整理時,將輸出緩衝區的內容傳送到瀏覽器。
適用版本:該函式適用於 PHP 4、PHP 5、PHP 7。
語法:bool ob_implicit_flush ([ int $flag = 1 ] )
引數:
- flag(可選):設定自動重新整理的標誌。如果 flag 為 1,則自動重新整理開啟;如果 flag 為 0,則自動重新整理關閉。預設值為 1。
返回值:如果成功設定自動重新整理標誌,則返回 true;否則返回 false。
示例:
<?php
ob_start(); // 開啟輸出緩衝區
echo "這是第一行內容\n";
ob_implicit_flush(); // 開啟自動重新整理
for ($i = 1; $i <= 5; $i++) {
echo "當前行數:" . $i . "\n";
sleep(1); // 模擬耗時操作
}
ob_end_flush(); // 重新整理輸出緩衝區並關閉
?>
輸出結果:
這是第一行內容
當前行數:1
當前行數:2
當前行數:3
當前行數:4
當前行數:5
解釋:在上述示例中,首先使用 ob_start() 函式開啟輸出緩衝區。然後使用 ob_implicit_flush() 函式開啟自動重新整理。接著使用一個迴圈,在每次迴圈中輸出當前行數,並使用 sleep() 函式模擬耗時操作。最後使用 ob_end_flush() 函式重新整理輸出緩衝區並關閉。
由於開啟了自動重新整理,每次迴圈輸出的內容都會立即傳送到瀏覽器,而不需要等待所有內容輸出完成後才傳送。這樣可以實現動態的輸出效果,適用於需要實時展示進度或結果的場景。