本文實(shí)例講述了php中的buffer緩沖區(qū)用法。分享給大家供大家參考,具體如下:
buffer其實(shí)就是緩沖區(qū),一個(gè)內(nèi)存地址空間,主要用于存儲(chǔ)數(shù)據(jù)
<?phpecho 1;
我們都運(yùn)行程序?yàn)g覽器訪問(wèn),會(huì)顯示1。
但是其實(shí)這中間會(huì)經(jīng)歷一個(gè)buffer,我們可以這樣理解:這個(gè)1數(shù)據(jù)會(huì)先到php緩存區(qū),當(dāng)這個(gè)緩沖區(qū)滿了之后,再傳給客戶端(瀏覽器)。
這個(gè)過(guò)程大致流程如下:
內(nèi)容 -> php buffer -> tcp -> 終端(瀏覽器)
php.ini
output_buffering = on#打開(kāi)output緩沖,默認(rèn)打開(kāi)的。
output_buffering打開(kāi)與關(guān)閉的區(qū)別:
1.打開(kāi)了php輸出緩存: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser display
2.未打開(kāi)php輸出緩存: echo,print -> server buffering -> browser buffering -> browser display
我們?cè)诖a里獲取緩存區(qū)內(nèi)容:
<?phpecho 1;echo "<hr/>";// 獲取php緩存區(qū)的內(nèi)容$buffer = ob_get_contents();echo $buffer;
如果在php配置文件php.ini中output_buffering = on是開(kāi)啟的,那么上面代碼在瀏覽器上會(huì)顯示2個(gè)1和2條橫線,查看網(wǎng)頁(yè)源代碼如下:
1<hr/>1<hr/>
如果php.ini中是關(guān)閉的,那么只會(huì)顯示一次。
當(dāng)然我們也可以在代碼中,臨時(shí)開(kāi)啟php緩沖區(qū)
<?phpob_start(); // 開(kāi)始php緩存,寫(xiě)在最前面echo 1;echo "<hr/>";// 獲取php緩存區(qū)的內(nèi)容$buffer = ob_get_contents();echo $buffer;
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選