您好,登錄后才能下訂單哦!
今天小編給大家分享的是PHP中ob_flush和flush的區(qū)別是什么?可能大家對PHP并不陌生,或者從來沒有了解過PHP。但是不用擔(dān)心,今天小編會以最簡單的描述來講解PHP中ob_flush和flush的區(qū)別。一起來看看吧。
b_flush/flush在手冊中的描述, 都是刷新輸出緩沖區(qū), 并且還需要配套使用, 所以會導(dǎo)致很多人迷惑…
其實, 他們倆的操作對象不同, 有些情況下, flush根本不做什么事情..
ob_*系列函數(shù), 是操作PHP本身的輸出緩沖區(qū).
所以, ob_flush是刷新PHP自身的緩沖區(qū).
而flush, 嚴(yán)格來講, 這個只有在PHP做為apache的Module(handler或者filter)安裝的時候, 才有實際作用. 它是刷新WebServer(可以認(rèn)為特指apache)的緩沖區(qū).
在apache module
的sapi
下, flush
會通過調(diào)用sapi_module
的flush
成員函數(shù)指針, 間接的調(diào)用apache
的api: ap_rflush
刷新apache
的輸出緩沖區(qū), 當(dāng)然手冊中也說了, 有一些apache的其他模塊, 可能會改變這個動作的結(jié)果..
有些Apache的模塊,比如mod_gzip,可能自己進行輸出緩存,這將導(dǎo)致flush()函數(shù)產(chǎn)生的結(jié)果不會立即被發(fā)送到客戶端瀏覽器。
甚至瀏覽器也會在顯示之前,緩存接收到的內(nèi)容。例如 Netscape瀏覽器會在接受到換行或 html 標(biāo)記的開頭之前緩存內(nèi)容,并且在接受到 </table> 標(biāo)記之前,不會顯示出整個表格。
一些版本的 Microsoft Internet Explorer 只有當(dāng)接受到的256個字節(jié)以后才開始顯示該頁面,所以必須發(fā)送一些額外的空格來讓這些瀏覽器顯示頁面內(nèi)容。12345678910
所以, 正確使用倆者的順序是. 先ob_flush, 然后flush,
當(dāng)然, 在其他sapi下, 不調(diào)用flush也可以, 只不過為了保證你代碼的可移植性, 建議配套使用.
以上就是PHP中ob_flush和flush的區(qū)別是什么的簡略介紹,當(dāng)然詳細使用上面的不同還得要大家自己使用過才領(lǐng)會。如果想了解更多,歡迎關(guān)注億速云行業(yè)資訊頻道哦!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。