程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中有關緩沖內置函數

php中有關緩沖內置函數

編輯:關於PHP編程


PHP輸出緩沖(Output Buffering)是指PHP把所有即將要發送到到浏覽器中的內容暫時放在緩沖區中,在整個PHP程序執行完後再把緩存區的內容輸出。

 


PHP中有關緩沖的內置函數,幾乎都以 ob_  開頭。另外,在PHP的配置文件php.ini中,有output buffering指令,一般是關閉的,我們用到它的時候再手動開啟(如果開啟,則在所有php程序中都會執行緩沖)。

 


我們在什麼時候用到緩沖呢?一般是在設置session和cookie的時候用到,因為它們之前不能有輸出,所有要啟用輸出緩沖機制。

 

 


一、啟用、結束緩沖功能—— ob_start() 、 ob_end_flush()


在外面要用到緩沖的時候,可一通過ob_start()開啟緩沖,然後結束緩沖,用ob_end_flush()。幾個常用的函數:


ob_flush() ——  提前發送緩沖,將ob_start()與ob_flush()之間的輸出提前(在整個php程序結束之前)發送到浏覽器中。

ob_clean() —— 清除緩存,在ob_start()與ob_clean()之間的輸出緩沖將不會被發送到浏覽器顯示出來。

ob_end_clean() ——  和ob_clean()一樣清除之前的緩沖,區別之處在於:它會結束整個緩沖功能,所有在它之後的輸出內容不會被放入緩沖區中。

ob_start()可以多層次嵌套使用,可以開啟一個大的緩沖,然後根據需要清除某一塊的緩沖。

 

 


二、使用ob_start()把輸出那同輸出到緩沖區,而不是到浏覽器。


然後用ob_get_contents得到緩沖區的數據。ob_start()在服務器打開一個緩沖區來保存所有的輸出。所以在任何時候使用echo ,輸出都將被加入緩沖區中,直到程序運行結束或者使用ob_flush()來結束。然後在服務器中緩沖區的內容才會發送到浏覽器,由浏覽器來解析顯示。

 


此時得用函數ob_get_contents()在ob_end_clean()前面來獲得緩沖區的內容。

這樣的話, 能將在執行ob_end_clean()前把內容保存到一個變量中,然後在ob_end_clean()後面對這個變量做操作。

 


ob_start();
echo  '中國共產黨好嗎?';
$name = ob_get_contents();
$length = ob_get_length();
ob_end_clean();

 

echo $name;


 作者“wbgod_1987”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved