ob_start():開啟緩存機(jī)制
ob_get_contents():獲取ob緩存中的內(nèi)容
ob_clean()清除ob緩存中的內(nèi)容帘营,但不關(guān)閉緩存
ob_end_clean() 清除ob緩存中的內(nèi)容古掏,并關(guān)閉緩存
ob_flush 清空緩存,輸出內(nèi)容樟遣,但不關(guān)閉緩存
ob_end_flush 清空緩存,輸出內(nèi)容,并關(guān)閉緩存
flush強(qiáng)制刷新輸出緩存中的內(nèi)容
按照http協(xié)議的規(guī)定,回應(yīng)內(nèi)容不能在回應(yīng)頭之前輸出势似,所以,如果在header()函數(shù)前面有內(nèi)容輸出,就會出現(xiàn)錯誤履因,但使用了ob_start()后就會將回應(yīng)內(nèi)容先放在ob緩存中辖佣,不會再消息頭發(fā)送之前被發(fā)送,就解決了header()報錯的問題搓逾!
下面說一下用php自帶的ob緩存機(jī)制實(shí)現(xiàn)頁面靜態(tài)化的方法
如上述代碼所示:
將我們查詢到的內(nèi)容直接保存到html文件中,如果文件存在杯拐,之間輸出霞篡,如果不存在,則訪問數(shù)據(jù)庫端逼,執(zhí)行對應(yīng)的查詢過程
如果要設(shè)置文件的過期時間朗兵,可以在if語句里面加一個判斷條件,用于判斷緩存文件是否過期顶滩,time()-設(shè)置的過期時間