成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

簡單記錄PHP buffer ob_start ob_flush

vvpvvp / 922人閱讀

摘要:如果設(shè)置為就是關(guān)閉狀態(tài)。不會(huì)銷毀輸出緩沖區(qū),而像函數(shù)會(huì)銷毀緩沖區(qū)。簡單說就是不會(huì)輸出,只會(huì)清空中的數(shù)據(jù)。關(guān)于緩沖性能調(diào)優(yōu)之參數(shù)設(shè)置失效問題

phpbuffer 路線

輸出的字符串 => PHP buffer => 等待輸出 => web 服務(wù)器的緩沖區(qū) => tcp 緩沖區(qū) => 客戶端

phpbuffer 配置

output_buffering的默認(rèn)值是打開狀態(tài),可以設(shè)置大于0的數(shù)值來打開buffer。如果設(shè)置為0就是關(guān)閉狀態(tài)。
另外,php buffer的 cli與非cli模式不同,另外buffer的輸出影響因素也會(huì)根據(jù)web容器(這里指apache和nginx)也不同。

以下例子在apahce +php模式下運(yùn)行,nginx大概相同,只是buffer控制參數(shù)大小不同 例子1

這個(gè)沒什么說的,腳本執(zhí)行完畢后,合并輸出到瀏覽器。

例子2

這個(gè)會(huì)等5秒后再輸出3312嗎,答案是否定的,因?yàn)殡m然開啟了ob_start,也調(diào)用了flush相關(guān)函數(shù),但是所有內(nèi)容a3312還是一起輸出到瀏覽器,因?yàn)閒lush之前,buffer的大小還沒有被填充滿,所以仍然不會(huì)輸出。buffer默認(rèn)為4096字節(jié),也就是4KB

例子3

這樣結(jié)果會(huì)是先輸出a,然后5秒后輸出3312.

例子4

這樣結(jié)果是一起輸出,因?yàn)槟慵词故謩?dòng)開啟了ob_start ,并且內(nèi)容已經(jīng)超過了緩沖區(qū),但是你并沒有顯示調(diào)用flush函數(shù),而且此時(shí)(echo 3312之前),腳本也并沒有完成。
所以結(jié)論是即使超過默認(rèn)值(4kb)也不會(huì)立即發(fā)送到瀏覽器,只到腳本運(yùn)行完成,或者顯示調(diào)用了ob_end_flush方法,才會(huì)輸出到瀏覽器。

例子5
";
    sleep(2);
}

這個(gè)結(jié)果是陸續(xù)輸出,因?yàn)閿?shù)據(jù)已經(jīng)大于了一個(gè)buffer,憋不住了,就必須往外冒了。

php buffer 相關(guān)函數(shù)意義: 1.ob_start

打開output_buffering,腳本不再直接輸出到瀏覽器,而是暫時(shí)寫入php buffering區(qū)域。
不管此時(shí)數(shù)據(jù)寫入多大,直到腳本運(yùn)行完畢后,才發(fā)送?;蛘吣_本結(jié)束之前,并且數(shù)據(jù)已經(jīng)大于了buffer??梢詤⒖祭铀?/p> 2.ob_get_contents

獲取php buffering中的數(shù)據(jù),注意:要在ob_end_clean()前調(diào)用,否則只會(huì)得到空字符。

3.ob_flush ob_end_flush ob_clean

ob_flush不會(huì)銷毀輸出緩沖區(qū),而像ob_end_flush() 函數(shù)會(huì)銷毀緩沖區(qū)。
ob_end_flush只是把php buffer中的數(shù)據(jù)沖(flush/send)到客戶端瀏覽器,而ob_clean將php bufeer中的數(shù)據(jù)清空(erase),但不發(fā)送給客戶端瀏覽器。簡單說就是ob_end_clean 不會(huì)輸出,只會(huì)清空php buffering中的數(shù)據(jù)。

另外,flush()這個(gè)函數(shù)在例子中我發(fā)現(xiàn)沒有什么卵用,可能環(huán)境不同。。還有我以上都是在apahce中測試,nginx也會(huì)有自己的緩沖配置字段控制。

關(guān)于php緩沖
Nginx性能調(diào)優(yōu)之buffer參數(shù)設(shè)置
nginx buffer php 失效問題

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21779.html

相關(guān)文章

  • PHP中output buffering的原理及應(yīng)用

    摘要:緩存過程在請求一個(gè)的過程中,實(shí)際上經(jīng)過三個(gè)緩存程序緩存緩存瀏覽器緩存開啟的兩個(gè)方法在配置這里去掉號(hào)即可在頁面中使用通過打開的,則作用于所有的頁面。 php緩存過程 在請求一個(gè)PHP的過程中,實(shí)際上經(jīng)過三個(gè)緩存: 程序緩存 ob緩存 瀏覽器緩存. 開啟ob的兩個(gè)方法 1.在php.ini 配置 ;output_buffering = 4096 這里去掉;號(hào)即可 2 在php頁面中使用...

    XUI 評(píng)論0 收藏0
  • PHP的輸出緩沖區(qū)

    摘要:什么是緩沖區(qū)簡單而言緩沖區(qū)的作用就是把輸入或者輸出的內(nèi)容先放進(jìn)內(nèi)存而不顯示或者讀取至于為什么要有緩沖區(qū)這是一個(gè)很廣泛的問題如果有興趣可以在網(wǎng)山找下資料其實(shí)緩沖區(qū)最本質(zhì)的作用就是協(xié)調(diào)高速和相對(duì)緩慢的設(shè)備磁盤等的運(yùn)作在執(zhí)行的時(shí)候在什么地方有用到 什么是緩沖區(qū)?簡單而言,緩沖區(qū)的作用就是,把輸入或者輸出的內(nèi)容先放進(jìn)內(nèi)存,而不顯示或者讀取.至于為什么要有緩沖區(qū),這是一個(gè)很廣泛的問題,如果有興趣...

    cyixlq 評(píng)論0 收藏0
  • 【modernPHP專題(10)】理解output buffer

    摘要:磁盤高速緩存操作系統(tǒng)中使用磁盤高速緩存技術(shù)來提高磁盤的速度,對(duì)高速緩存復(fù)制的訪問要比原始數(shù)據(jù)訪問更為高效。因此,磁盤高速緩存在邏輯上屬于磁盤,物理上則是駐留在內(nèi)存中的盤塊。 1. 磁盤高速緩存(Disk Cache) 操作系統(tǒng)中使用磁盤高速緩存技術(shù)來提高磁盤的I/O速度,對(duì)高速緩存復(fù)制的訪問要比原始數(shù)據(jù)訪問更為高效。例如,正在運(yùn)行的進(jìn)程的指令既存儲(chǔ)在磁盤上,也存儲(chǔ)在物理內(nèi)存上,也被復(fù)...

    kelvinlee 評(píng)論0 收藏0
  • 淺析PHP的輸出緩沖控制

    摘要:默認(rèn)為是一個(gè)回調(diào)函數(shù),將腳本的所有輸出,用所定義的函數(shù)進(jìn)行處理。在輸出緩沖區(qū)的回調(diào)函數(shù)中使用這些函數(shù),會(huì)導(dǎo)致未定義的錯(cuò)誤。 簡介 PHP有輸出時(shí),可以用輸出控制函數(shù)來控制輸出 緩沖階段 ob_start(),將內(nèi)部緩沖區(qū)(buffer)打開。當(dāng)PHP遇到echo,printf等輸出語句時(shí), PHP就會(huì)將要輸出的數(shù)據(jù)放入緩沖區(qū)(buffer)中,等待輸出。而只有當(dāng)緩沖區(qū)滿了或者php運(yùn)行...

    wangjuntytl 評(píng)論0 收藏0
  • PHP基礎(chǔ)之輸出緩沖區(qū)基本概念、原理分析

    摘要:返回內(nèi)部緩沖區(qū)的內(nèi)容,關(guān)閉緩沖區(qū)。返回緩沖區(qū)的長度,如果緩沖區(qū)未被激活,則返回。得到所有輸出緩沖區(qū)的狀態(tài)。使用輸出緩沖,可以將讀取的文件讀入緩沖區(qū),達(dá)到一定大小時(shí)傳送給用戶,再繼續(xù)讀取,實(shí)現(xiàn)分片的效果。 一、概念 在PHP運(yùn)行的過程中,可以將會(huì)產(chǎn)生輸出的函數(shù)或操作結(jié)果暫時(shí)保存在PHP的緩沖區(qū),只有當(dāng)緩沖區(qū)滿了、或者PHP運(yùn)行完畢、或者在必要時(shí)候進(jìn)行輸出,才會(huì)將數(shù)據(jù)輸出到瀏覽器,此緩沖數(shù)...

    harryhappy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<