国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP輸出緩沖控制Output Control系列函數詳解

2019-11-02 15:51:43
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了PHP輸出緩沖控制Output Control系列函數詳解,本文講解了輸出緩沖的簡介、輸出緩沖的作用、php.ini 中的相關配置項、Output Control 函數詳解等內容,需要的朋友可以參考下

  概述

  以前研究過PHP的輸入輸出緩沖,不過博客搬家以后,原來文章找不到了,今天看到一篇好文,順便轉載過來。

  簡介

  說到輸出緩沖,首先要說的是一個叫做緩沖器(buffer)的東西。舉個簡單的例子說明他的作用:我們在編輯一篇文檔時,在我們沒有保存之前,系統是不會向磁盤寫入的,而是寫到buffer中,當buffer寫滿或者執行了保存操作,才會將數據寫入磁盤。對于PHP來說,每一次像 echo 這樣的輸出操作,同樣是先寫入到了 php buffer 里,在腳本執行完畢或者執行了強制輸出緩存操作,數據才會在瀏覽器上顯示。

  其實對于PHP程序員來說,基本上每個腳本都涉及到了輸出緩沖,只是在大多數情況下,我們都不需要對輸出緩沖進行更改。而今天就來用實例對PHP輸出緩沖控制函數“Output Control”做一個詳細的解析。

  下面這個例子簡單介紹了輸出緩沖在一般腳本中存在的方式:

   代碼如下:

  echo 'Apple';

  echo 'IBM';

  echo 'Microsoft'

  我們在執行上面這段腳本時,腳本在執行完第一個 echo 時,并不會向瀏覽器輸出相應內容,而是會輸出到一個緩沖區,依次類推,當三個 echo 全部執行完畢(也就是腳本結束)時,才會將緩沖區內容全部輸出到瀏覽器。當然這個緩沖區也有大小的限制,是根據 php.ini 中的output_buffering選項來設置的,這點會在下面的文章中詳細介紹。而本章所講的輸出緩沖控制,就是在腳本結束前,對緩沖區里的內容進行操作。

  下這個例子可以更好的體現輸出緩沖控制的應用:

  代碼如下:

  echo 'Apple'; sleep(2);

  echo 'IBM'; sleep(2);

  echo 'Microsoft';

  我們至少需要等待 2秒 才能看到輸出結果,那我們能不能讓其實時的顯示呢?也就是在第一個 echo 執行完畢時就輸出相應的內容呢,這時候就需要用輸出緩沖控制函數來操作緩沖區了,具體怎么實現先放一邊,文章的結尾會公布。

  作用

  1.在PHP中,像header(), session_start(), setcookie() 等這樣的發送頭文件的函數前,不能有任何的輸出,而利用輸出緩沖控制函數可以在這些函數前進行輸出而不報錯。其實這么做沒啥必要,非常少見的用法。

  2.對輸出的內容進行處理,例如生成靜態緩存文件、進行gzip壓縮輸出,這算是較常用的功能了。

  3.捕獲一些不可獲取的函數輸出,例如phpinfo(), var_dump() 等等,這些函數都會將運算結果顯示在瀏覽器中,而如果我們想對這些結果進行處理,則用輸出緩沖控制函數是個不錯的方法。說的通俗點,就是這類函數都不會有返回值,而要獲取這些函數的輸出數據,就要用到輸出緩沖控制函數。

  4.最后一種應用就是 簡介 中提到的 對一些數據進行實時的輸出。

  php.ini 中的相關配置項

  再來看看在 php.ini 中和輸出緩沖控制有關的選項,共三個,分別是:output_buffering, implicit_flush 和 output_handler。

  1.output_buffering 默認為 off , 當設置為 on 時,則在所有腳本自動打開輸出緩沖區,就是在每個腳本都自動執行了 ob_start() 這個函數,而不用再顯示的調用該函數。其也可以設置為一個整型的數字,代表緩沖區可以存儲的最大字節數,我們在例1下面的說明中提到過這個配置項。

  2.implicit_flush 默認為 off , 當設置為 on 時,PHP將在輸出后,自動送出緩沖區內容。就是在每段輸出后,自動執行 flush() 。當然有效的輸出不僅指像echo , print 這樣的函數,也包括HTML段。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 香河县| 民丰县| 临猗县| 伊金霍洛旗| 宿松县| 新沂市| 娱乐| 乌拉特后旗| 连南| 丽江市| 锡林浩特市| 加查县| 金乡县| 苏州市| 洛川县| 北碚区| 疏附县| 玉林市| 台江县| 房产| 邓州市| 囊谦县| 肥东县| 定襄县| 雷山县| 云浮市| 枝江市| 太康县| 和平区| 鹤壁市| 垫江县| 昭通市| 普格县| 中阳县| 德格县| 盈江县| 姜堰市| 阳曲县| 白水县| 敖汉旗| 策勒县|