使用PHP自帶的緩存機制
原則:如果ob緩存打開,則echo的數據首先放在ob緩存。如果是header信息,直接放在程序緩存。當頁面執行到最后,會把ob緩存的數據放到程序緩存,然后依次返回給瀏覽器。
OB(輸出緩存)緩存的機制:
看段代碼:
echo 'hello100';
header('Content-Type:text/html;charset=utf-8');
echo 'hello200';
為什么不打開ob緩存要報錯?
沒有ob緩存時,程序遇見一個echo就將它放到程序緩存中(之前默認有header),根據http協議格式,先有header頭再有body數據,所以就不能在body后再加header。
為什么打開ob緩存后不報錯?
看間echo就把echo的信息放到ob緩存中,看見header信息就放到程序緩存中,最后程序結束時,將ob緩存中的數據刷新到程序緩存中。
在php5.2有個配置項:ouput_buffering,默認是關閉的,則這個代碼會報錯。
解決方案:a 將header寫在最前面 b 打開ob緩存
☆如何打開ob緩存的方法
① 在配置文件中php.ini文件中output_buffering=4096
② 在程序中加一句話 ob_start(); //開啟ob緩存
幾個重要ob函數:
$str = ob_get_contents(); //獲取ob緩存數據
ob_clean(); //清空ob緩存的數據
ob_end_cleam(); //清空ob緩存的數據並關閉緩存
ob_flush(); //把ob緩存的數據刷新(剪切)到程序緩存
ob_end_flush(); //把ob緩存的數據刷新(剪切)到程序緩存並關閉ob緩存
flush(); //把程序緩存強制刷新到瀏覽器緩存
http://blog.sina.com.cn/s/blog_9bbafb790101cmpb.html