PHP的OB緩存(輸出緩存)


 

 

 

  使用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緩存后不報錯?

PHP的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM