PHP中的ob_start()等函數

PHP中常用的幾個 Output Control 函數爲:

1.ob_start()         //  開啓緩衝區

2.ob_flush()         //  送出緩衝區內容
3.ob_end_flush()     //  送出緩衝區內容並關閉緩衝區

3.ob_clean()         //  清空緩衝區內容
4.ob_end_clean()     //  清空緩衝區內容並關閉緩衝區

5.ob_get_contents()  //  得到緩衝區的內容

ob_start() 函數會打開輸出緩衝區,打開後,腳本里所有輸出的內容,包括 echo 、print、include、require 等,都會首先保存在服務器的緩衝區中。在 php.ini中,output_buffering 默認爲 4096,也就是說緩衝區是默認開啓的,並且大小爲 4096字節,即4KB。當緩衝區寫滿 或者 執行了 ob_flush() 或者 ob_end_flush() 或者 腳本執行結束,纔會把緩衝區內容發送給瀏覽器。

雖然 clean 和 flush 都會使緩衝區清空,但是 clean只是單純地清空緩衝區,而 flush是把緩衝區的內容送出去。 因此,想獲得緩衝區內容就必須在它們之前執行 ob_get_contents() 。

這些函數通常用在 頁面靜態化中,如果一個頁面實時性不高,那麼我們可以將渲染好的頁面通過 file_put_contents() 與 ob_get_contents() 保存爲 .html文件,之後客戶直接訪問這個靜態文件就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章