亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP 輸出緩沖控制(Output Control)詳解

2020-03-22 18:03:12
字體:
來源:轉載
供稿:網友
其實我對php ob 系列印象還是很模糊,具體怎么玩的,還不是很了解,平時curd,確實對這些內容沒有深入。作為phper 甚是慚愧。網上搜了一通,互相copy,代碼運行不能出現作者所描述現象,本文良心出品,代碼都是作者運行過。 當執行輸出的時候,比如 echo,print。輸出并沒有立即送給 web server, 而是將數據寫入 php buffer。php output_buffering 機制好處當然提升性能。其實 php 文件最終在瀏覽器上顯示,走過3個緩沖階段: php buffer=》web server buffer=》browser buffer。 最后顯示到瀏覽器 默認情況下,php buffer 是開啟的,而且該 buffer 默認值是4096,即4 kb。你可以通過在php.ini配置文件中找到output_buffering配置。buffer是一個內存地址空間,html' target='_blank'>Linux系統默認大小一般為4096(4kb),即一個內存頁。主要用于存儲速度不同步的設備或者優先級不同的設備之間傳辦理數據的區域。通過buffer,可以使進程這間的相互等待變少。這里說一個通俗一點的例子,你打開文本編輯器編輯一個文件的時候,你每輸入一個字符,操作系統并不會立即把這個字符直接寫入到磁盤,而是先寫入到buffer,當寫滿了一個buffer的時候,才會把buffer中的數據寫入磁盤,當然當調用內核函數flush()的時候,強制要求把buffer中的臟數據寫回磁盤。 舉個例子
echo "南無阿彌陀佛 br header("content-type:text/html;charset='utf-8'");echo "真善忍好!";//output//南無阿彌陀佛//真善忍好header()必須在任何實際輸出之前調用,但是我們程序已經輸出了,卻正常運行。在看下面的代碼:
phpecho "南無阿彌陀佛 br ob_flush();header("content-type:text/html;charset='utf-8'");echo "真善忍好!";//output//南無阿彌陀佛//Cannot modify header information - headers already sent by (output started at E:/php/test.php:3)//真善忍好上面程序說明程序并沒有立即輸出,而當調用ob_flush 函數的時候才刷新緩沖,輸出。 ob_flush() 與 flush()
ob_flush() , flush() 函數php 手冊上都有詳細的說明,你可以去查閱一下。二者的區別是:ob_flush() 是刷新PHP自身的緩沖區flush()是 它是刷新WebServer 服務器的緩沖。輸出到瀏覽器。但是會出現下面的情況: 個別web服務器程序,特別是Win32下的web服務器程序,在發送結果到瀏覽器之前,仍然會緩存腳本的輸出,直到程序結束為止。 有些Apache的模塊,比如mod_gzip,可能自己進行輸出緩存,這將導致flush()函數產生的結果不會立即被發送到客戶端瀏覽器。 甚至瀏覽器也會在顯示之前,緩存接收到的內容。例如 Netscape 瀏覽器會在接受到換行或 html 標記的開頭之前緩存內容,并且在接受到 /table 標記之前,不會顯示出整個表格。 一些版本的 Microsoft Internet Explorer 只有當接受到的256個字節以后才開始顯示該頁面,所以必須發送一些額外的空格來讓這些瀏覽器顯示頁面內容。比如:Server:LightTPD/1.4.28 (Win32)X-Powered-By:PHP/5.3.27echo '佛法無邊'." BR ob_flush();flush();sleep(1);echo '法輪常轉';//output上面的代碼 在 chrome 瀏覽器上面 是一行一行的輸出,在ie系列的瀏覽器則是全部輸出。其實就是上面的 第四條一些瀏覽器只有當接收256個字符才開始顯示。把上面的代碼改成下面形式:
Server:LightTPD/1.4.28 (Win32)X-Powered-By:PHP/5.3.27echo str_pad('',240)."/n"; echo '佛法無邊'." BR ob_flush();flush();sleep(1);echo '法輪常轉';//output這樣在ie下面就會一行一行輸出,因為超過256個字符。 ob 其他函數說明
1.ob_end_flush 與 ob_end_clean end 的顧名思義就結束,關閉緩沖區,都是關閉輸出緩沖,一個是輸出緩沖區,一個是清除。比如Server:LightTPD/1.4.28 (Win32)X-Powered-By:PHP/5.3.27echo 'before';ob_end_clean();echo str_pad('',4096)."/n";for ($i=10; $i $i--) echo $i; sleep(1);上述代碼是一下輸出全部內容,而不是一個一個輸出。ob_end_clean() 不是關閉了緩沖了?怎么不是一個一個輸出呢,其實我們上面也說了,php 不是直接輸出給瀏覽器,而是 web server。 雖然php 沒有了 緩沖。但是web server 還是有的。所以下面代碼:
Server:LightTPD/1.4.28 (Win32)X-Powered-By:PHP/5.3.27echo 'before';ob_end_clean();echo str_pad('',4096)."/n";for ($i=10; $i $i--) flush(); echo $i; sleep(1);加上flush(),就會一行一行輸出。 如果把ob_end_clean 換成 ob_end_flush 會把 before 輸出來。其他函數 可參考手冊,比較簡單。 總結
php 腳本到瀏覽器,要經過 php buffer=》web server buffer=》browser buffer。 最后顯示到瀏覽器。 缺一不可。 所以我們要 ob_flush 和 flush 以及加上 echo str_pad('',4096) 才能調試出你想要的效果。以上就是對PHP 緩沖的資料整理后續繼續補充相關資料,謝謝大家對本站的支持!PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲图片| 77777少妇光屁股久久一区| 欧美大片在线看| 国产精品444| 亚洲精品美女在线观看播放| 日韩经典中文字幕| 亚洲欧洲av一区二区| 日韩高清电影免费观看完整版| 欧美亚洲在线播放| 久久电影一区二区| 成人做爽爽免费视频| 91av在线免费观看视频| 91精品国产自产在线老师啪| 精品视频在线观看日韩| www.亚洲人.com| 亚洲精品自在久久| 日韩视频中文字幕| 2025国产精品视频| 久久人人爽人人爽人人片av高请| 伊人激情综合网| 国产欧美亚洲视频| 亚洲欧美日韩国产中文专区| 日本久久久久久久| 欧美在线亚洲一区| 久久99久久99精品中文字幕| 亚洲免费电影在线观看| 日韩av手机在线看| 欧美第一黄网免费网站| 中文字幕v亚洲ⅴv天堂| 亚洲一区二区少妇| 欧美一区二区视频97| 91精品国产免费久久久久久| 久久综合伊人77777尤物| 国产手机视频精品| 蜜臀久久99精品久久久久久宅男| 成人性生交大片免费观看嘿嘿视频| 国产精品日韩精品| 欧美成人自拍视频| 91久久精品久久国产性色也91| 成人精品视频99在线观看免费| 国产亚洲精品高潮| 日本精品久久电影| 热99精品只有里视频精品| 国产精品一区二区三区久久| 欧美一区亚洲一区| 精品久久久久久久久久久| 久操成人在线视频| 亚洲欧美成人一区二区在线电影| 亚洲天堂成人在线视频| 粉嫩av一区二区三区免费野| 亚洲97在线观看| 国产福利成人在线| 亚洲人成五月天| 亚洲图片制服诱惑| 日韩欧美中文字幕在线观看| 欧美性xxxx极品高清hd直播| 国产精品欧美在线| 青青在线视频一区二区三区| 国产精品久久久久久久久| 日韩成人中文电影| 影音先锋欧美在线资源| 亚洲精品日韩av| 国产98色在线| 欧美精品中文字幕一区| 亚洲国产私拍精品国模在线观看| 久久6精品影院| 成人免费淫片视频软件| 日本亚洲精品在线观看| 亚洲欧美在线x视频| 国产suv精品一区二区三区88区| 国产精品久久av| 伊人久久综合97精品| 日韩精品视频免费| 国产91免费观看| 欧美成人精品在线播放| 久久久欧美精品| 国产精品电影网站| 在线观看久久久久久| 亚洲视屏在线播放| 国产精品欧美日韩| 国产不卡在线观看| 91av在线视频观看| 国产精品a久久久久久| 亚洲国产天堂久久综合| 日韩一区av在线| 亚洲国产另类久久精品| 社区色欧美激情 | 成人激情视频网| 久久久久久伊人| 久久成人精品视频| 欧美激情免费观看| 日韩免费视频在线观看| 欧美另类极品videosbest最新版本| 日韩欧美在线字幕| 国产一区二区三区久久精品| 欧美日韩在线视频一区| 久久久女女女女999久久| 日韩精品视频观看| 国产91网红主播在线观看| 97超碰国产精品女人人人爽| 最近2019免费中文字幕视频三| 欧洲永久精品大片ww免费漫画| 久久精品91久久香蕉加勒比| 欧美高清视频在线播放| 国产精品永久免费在线| 91欧美激情另类亚洲| 亚洲精品在线不卡| 韩曰欧美视频免费观看| 91精品视频在线免费观看| 欧美日韩在线免费观看| 91香蕉亚洲精品| 韩剧1988在线观看免费完整版| 91国内揄拍国内精品对白| 久久91亚洲精品中文字幕奶水| 成人写真视频福利网| 久久亚洲精品毛片| 亚洲欧美激情四射在线日| 久久精品视频亚洲| 欧美高清在线播放| 国产精品午夜视频| 欧美日韩性生活视频| 国产裸体写真av一区二区| 尤物九九久久国产精品的分类| 欧美性感美女h网站在线观看免费| 亚洲综合精品一区二区| 欧美肥婆姓交大片| 亚洲另类欧美自拍| 日韩国产中文字幕| 国产精品一区二区三区毛片淫片| 日日狠狠久久偷偷四色综合免费| 日韩欧美在线中文字幕| 久久国产精品视频| 不卡av在线网站| 国产精品久久久久影院日本| 国产精品一区二区3区| 亚洲欧美日韩国产中文专区| 欧美专区国产专区| 国产一区私人高清影院| 啊v视频在线一区二区三区| 另类天堂视频在线观看| 国产精品jizz在线观看麻豆| 亚洲国产精品久久| 亚洲精品99久久久久中文字幕| 成人精品视频99在线观看免费| 深夜精品寂寞黄网站在线观看| 亚洲精品动漫100p| 亚洲人成伊人成综合网久久久| 国产精品久久一区主播| 国产日韩精品在线观看| 狠狠色狠狠色综合日日小说| 久久免费视频观看| 日韩免费av片在线观看| 亚洲高清不卡av| 国产成人高潮免费观看精品| 久久综合伊人77777| 精品人伦一区二区三区蜜桃免费| 久久精品色欧美aⅴ一区二区| 日韩经典一区二区三区| 国产精品视频一| 日韩欧美高清视频| 国产精品免费小视频| 成人性生交大片免费观看嘿嘿视频| 精品国偷自产在线视频99| 国产精品日韩久久久久|