今天小編給大家分享的是PHP中ob_flush和flush的區(qū)別是什么?可能大家對(duì)PHP并不陌生,或者從來沒有了解過PHP。但是不用擔(dān)心,今天小編會(huì)以最簡(jiǎn)單的描述來講解PHP中ob_flush和flush的區(qū)別。一起來看看吧。
創(chuàng)新互聯(lián)的團(tuán)隊(duì)成員不追求數(shù)量、追求質(zhì)量。我們經(jīng)驗(yàn)豐富并且專業(yè),我們之間合作時(shí)就好像一個(gè)人,協(xié)同一致毫無保留。創(chuàng)新互聯(lián)珍視想法,同時(shí)也看重過程轉(zhuǎn)化帶來的沖擊力和影響力,在我們眼中,任何細(xì)節(jié)都不容小覷。一直致力于為企業(yè)提供從國(guó)際域名空間、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站制作、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷服務(wù)。b_flush/flush在手冊(cè)中的描述, 都是刷新輸出緩沖區(qū), 并且還需要配套使用, 所以會(huì)導(dǎo)致很多人迷惑…
其實(shí), 他們倆的操作對(duì)象不同, 有些情況下, flush根本不做什么事情..
ob_*系列函數(shù), 是操作PHP本身的輸出緩沖區(qū).
所以, ob_flush是刷新PHP自身的緩沖區(qū).
而flush, 嚴(yán)格來講, 這個(gè)只有在PHP做為apache的Module(handler或者filter)安裝的時(shí)候, 才有實(shí)際作用. 它是刷新WebServer(可以認(rèn)為特指apache)的緩沖區(qū).
在apache module
的sapi
下, flush
會(huì)通過調(diào)用sapi_module
的flush
成員函數(shù)指針, 間接的調(diào)用apache
的api: ap_rflush
刷新apache
的輸出緩沖區(qū), 當(dāng)然手冊(cè)中也說了, 有一些apache的其他模塊, 可能會(huì)改變這個(gè)動(dòng)作的結(jié)果..
有些Apache的模塊,比如mod_gzip,可能自己進(jìn)行輸出緩存,這將導(dǎo)致flush()函數(shù)產(chǎn)生的結(jié)果不會(huì)立即被發(fā)送到客戶端瀏覽器。
甚至瀏覽器也會(huì)在顯示之前,緩存接收到的內(nèi)容。例如 Netscape瀏覽器會(huì)在接受到換行或 html 標(biāo)記的開頭之前緩存內(nèi)容,并且在接受到 標(biāo)記之前,不會(huì)顯示出整個(gè)表格。
一些版本的 Microsoft Internet Explorer 只有當(dāng)接受到的256個(gè)字節(jié)以后才開始顯示該頁面,所以必須發(fā)送一些額外的空格來讓這些瀏覽器顯示頁面內(nèi)容。12345678910
所以, 正確使用倆者的順序是. 先ob_flush, 然后flush,
當(dāng)然, 在其他sapi下, 不調(diào)用flush也可以, 只不過為了保證你代碼的可移植性, 建議配套使用.
以上就是PHP中ob_flush和flush的區(qū)別是什么的簡(jiǎn)略介紹,當(dāng)然詳細(xì)使用上面的不同還得要大家自己使用過才領(lǐng)會(huì)。如果想了解更多,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道哦!