1. 程式人生 > >PHP 緩存區ob

PHP 緩存區ob

保存 header bsp span 清空 自己的 介紹 緩沖 cli

介紹:

ob是output buffering的簡稱,輸出緩沖區,緩沖區是通過php.ini中的output_buffering變量控制的。其默認值是off,可以設置為on來打開buffer。打來buffer後,即便程序中沒有用ob函數,實際上代碼也是使用了緩沖區的。另外,不管php.ini中output_buffering的設置,cli模式下的php始終默認是關閉的。為什麽要是緩沖區呢?簡單來說,高速的cpu早早處理完自己的數據,想通過線路傳遞給用戶,但是線路太窄了,一下輸送不過去。如果引入緩沖區,cpu可以將快速將生成的數據放入緩沖區,然後自己哪兒涼快兒哪兒呆著這歇著去了。緩沖區根據指令適時將數據輸出。這個樣就合理解決了高速cpu與低速I/O設備的矛盾了。

使用基本原則:

如果ob緩存打開,則echo的數據首先放在ob緩存。如果是header信息,直接放在程序緩存。當頁面執行到最後,會把ob緩存的數據放到程序緩存,然後依次返回給瀏覽器。

基本使用方法:

    // 開啟OB
    ob_start();
    //輸出一些內容,此時輸出的內容並不會真正輸出,而是保存在緩沖區
    echo "hello";
    echo "word";
    //從緩沖區獲取數據
    $info = ob_get_contents();
    //關閉並清空緩沖區
    ob_end_clean();
    var_dump($info);    //輸出:string ‘helloword‘ (length=9)

PHP 緩存區ob