亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP緩沖區ob_flush()與flush()

PHP緩沖區ob_flush()與flush()

呼喚遠方 2019-12-13 11:10:11
什么之間的區別ob_flush(),并flush()和我為什么一定要同時調用?該ob_flush()參考說:此函數將發送輸出緩沖區的內容(如果有)。該flush()參考說:刷新PHP的寫緩沖區以及PHP使用的任何后端PHP(CGI,Web服務器等)。但是,它繼續說:[它]可能無法覆蓋Web服務器的緩沖方案…因此,在我看來,我可以一直使用ob_flush()所有時間。但是,這樣做會得到奇怪的結果。有人可以簡單地解釋一下這是怎么回事嗎?
查看完整描述

3 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

ob_flush發送應用程序啟動的緩沖區。ob_start()任何PHP腳本中都可能有多個嵌套的。ob_flush將當前內容傳遞到上層。


PHP本身(可以自行決定)可以緩沖輸出。這取決于后端。但是通常FastCGI有一個套接字緩沖區。因此,還flush()需要調用以將當前內容發送到Web服務器。


現在,Web服務器本身可能實現了另一個緩沖方案(mod_deflate或內容過濾器),您對此沒有影響。但這很少,因為它需要專門配置。


無論如何,請同時使用兩者。



查看完整回答
反對 回復 2019-12-14
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

ob_flush()是高級沖洗。它刷新高級緩沖區,并將所有內容放入準備發送的低級內部緩沖區中。


請注意,ob_函數家族會創建緩沖區堆棧,因此,ob_flush()如果編寫代碼來利用此堆棧,那么盲目地在所有地方編寫確實會給您“奇怪的結果”。

flush() 是低級刷新,指示PHP刷新其內部低級數據緩沖區。


仍然在其下方,有套接字層緩沖區。在此之下,有網絡層緩沖區。而且,在最低級別上,電子隊列沿著數據電纜傳輸。



查看完整回答
反對 回復 2019-12-14
  • 3 回答
  • 0 關注
  • 454 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號