溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中ob_flush和flush的區(qū)別是什么

發(fā)布時間:2020-04-01 15:55:15 來源:億速云 閱讀:93 作者:小新 欄目:編程語言

今天小編給大家分享的是PHP中ob_flush和flush的區(qū)別是什么?可能大家對PHP并不陌生,或者從來沒有了解過PHP。但是不用擔(dān)心,今天小編會以最簡單的描述來講解PHP中ob_flush和flush的區(qū)別。一起來看看吧。

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 modulesapi下, flush會通過調(diào)用sapi_moduleflush成員函數(shù)指針, 間接的調(diào)用apacheapi: 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è)資訊頻道哦!

向AI問一下細節(jié)

免責(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)容。

AI