緩衝函數ob_get_contents() ob_end_clean() ob_start()的用法

下面3個函數的用法
ob_get_contents();
ob_end_clean();
ob_start()
能夠藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。

使用ob_start()把輸出那同輸出到緩衝區,而不是到瀏覽器。
而後用ob_get_contents獲得緩衝區的數據。

ob_start()在服務器打開一個緩衝區來保存全部的輸出。因此在任什麼時候候使用echo,輸出都將被加入緩衝區中,直到程序運行結束或者使用ob_flush()來結束。而後在服務器中緩衝區的內容纔會發送到瀏覽器,由瀏覽器來解析顯示。

函數ob_end_clean會清除緩衝區的內容,並將緩衝區關閉,但不會輸出內容。
此時得用一個函數ob_get_contents()在ob_end_clean()前面來得到緩衝區的內容。
這樣的話,能將在執行ob_end_clean()前把內容保存到一個變量中,而後在ob_end_clean()後面對這個變量作操做。

這是EG:
ob_start();//buf1
echo 'multiple';
ob_start();//buf2
echo 'bufferswork';
$buf1 = ob_get_contents();
ob_end_clean();
$buf2 = ob_get_contents();
ob_end_clean();

echo $buf1;
echo '<br/>';

echo $buf2; 瀏覽器

最終結果是:先輸入緩衝區2的,清除刪除緩衝區2後,再輸出緩衝區1的,
服務器

相關函數介紹:
一、Flush:輸出緩衝區內的內容而且刪除緩衝區。
函數格式:flush()
說明:這個函數常常使用,效率很高。
二、ob_start :打開輸出緩衝區
函數格式:void ob_start(void)
說明:當緩衝區激活時,全部來自PHP程序的非文件頭信息均不會發送,而是保存在內部緩衝區。爲了輸出緩衝區的內容,可使用ob_end_flush()或者使用ob_end_clean()來輸出緩衝區的內容。
3 、ob_get_contents :返回內部緩衝區的內容。
使用方法:string ob_get_contents(void)
說明:這個函數會返回當前緩衝區中的內容,若是輸出緩衝區沒有激活,則返回 FALSE 。
四、ob_get_length:返回內部緩衝區的長度。
使用方法:int ob_get_length(void)
說明:這個函數會返回當前緩衝區中的長度;和ob_get_contents同樣,若是輸出緩衝區沒有激活。則返回 FALSE。
五、ob_end_flush :發送內部緩衝區的內容到瀏覽器,而且關閉輸出緩衝區。
使用方法:void ob_end_flush(void)
說明:這個函數發送輸出緩衝區的內容(若是有的話)。
六、ob_end_clean:刪除內部緩衝區的內容,而且關閉內部緩衝區
使用方法:void ob_end_clean(void)
說明:這個函數不會輸出內部緩衝區的內容!
七、ob_implicit_flush:打開或關閉絕對刷新
使用方法:void ob_implicit_flush ([int flag])
說明:使用過Perl的人都知道?$|=x的意義,這個字符串能夠打開/關閉緩衝區,而ob_implicit_flush函數也和那個同樣,默認爲關閉緩衝區,打開絕對輸出。 函數

相關文章
相關標籤/搜索