亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

ob緩存機(jī)制(ob:output_buffer)

stormgens / 564人閱讀

摘要:我們要說一下中的緩存大概有哪些在中,我們可以粗略的將緩存分為客戶端緩存緩存,服務(wù)器端緩存緩存。由于是基于架構(gòu)的,所有,我們可以理解為瀏覽器端的緩存,服務(wù)器端緩存。

① 我們要說一下php中的緩存大概有哪些!

在php中,我們可以粗略的將緩存分為客戶端緩存(Browser緩存),服務(wù)器端緩存(Server緩存)。由于php是基于b/s架構(gòu)的,所有,我們可以理解為瀏覽器端的緩存,服務(wù)器端緩存。
在服務(wù)器端php自帶的緩存中,主要可以分為兩大類緩存!程序緩存和ob緩存!這也是我們學(xué)習(xí)服務(wù)器端緩存的主要內(nèi)容!

②服務(wù)器端的響應(yīng)流程

A、客戶端向服務(wù)器端發(fā)送請求響應(yīng)!
B、apache服務(wù)器加載了php模塊,開啟相應(yīng)的進(jìn)程(或線程)運(yùn)行相應(yīng)的php腳本頁面!
C、在沒有開啟ob緩存的情況下,運(yùn)行的結(jié)果全部都會被放到程序緩存中,然后打包發(fā)送給瀏覽器!瀏覽器對頁面進(jìn)行渲染,生成我們最后看到的web頁面!
D、在開啟了bo緩存的情況下,運(yùn)行的結(jié)果會被分別放入到ob緩存和程序緩存中,當(dāng)程序運(yùn)行到最后一行的時候,就會將ob緩存中的數(shù)據(jù)刷回到程序緩存中,然后打包返回給瀏覽器!瀏覽器對頁面進(jìn)行渲染,生成我們看到的web頁面!

③ob緩存的常見用法!

a、在腳本剛開的時候調(diào)用ob_start()函數(shù),它的作用是開啟ob緩存,究其實(shí)質(zhì)是,在當(dāng)前腳本中,是將php.ini配置文件的output_buffering選項開啟!但是,除了開啟ob緩存,其實(shí)obstart還有一個回調(diào)函數(shù)!在下面的例子,我們將所有的http://替換為了ftp://
舉例如下:

 ";
        echo $url;
    }
    //將ob緩存中的內(nèi)容刷到程序緩存中,并關(guān)閉ob緩存
    ob_end_flush();
?>

注意:在php5.3以后ob緩存默認(rèn)是開啟的!

b、將ob緩存中的數(shù)據(jù),刷回到程序緩存中!
ob_flush(),將ob緩存中的內(nèi)容,刷到程序緩存中!但并沒有關(guān)閉ob緩存
ob_end_flush(),關(guān)閉ob緩存,并將數(shù)據(jù)刷回到程序緩存中!

c、清空ob緩存中的內(nèi)容
ob_clean(),將ob緩存中的內(nèi)容清空!
ob_end_clean(),將ob緩存中的數(shù)據(jù)清空,并且關(guān)閉ob緩存!

d、獲的當(dāng)前ob緩存中的內(nèi)容!
ob_get_contents(),獲取當(dāng)前ob緩存中的內(nèi)容
ob_get_clean(),獲取當(dāng)前ob緩存中的內(nèi)容,并且清空當(dāng)前的ob緩存

④ob緩存的作用!

ob緩存在各個方面都有應(yīng)用,但是,本人知道的主要是在兩個方面!
a、當(dāng)網(wǎng)站準(zhǔn)備做網(wǎng)站靜態(tài)化的時候,選擇ob緩存是一個不錯的選擇!

b、解決Warning: Cannot modify header information - headers already sent by的錯誤!
究其發(fā)生錯誤的原因:是因?yàn)轫憫?yīng)頭和相應(yīng)主體位置錯位導(dǎo)致的!正常情況下,服務(wù)器返回給瀏覽器的相應(yīng)內(nèi)容,應(yīng)該是:響應(yīng)頭+響應(yīng)主體!
但是,如果我們開啟了ob緩存,那么相應(yīng)頭信息(一般也就是header()函數(shù)進(jìn)行設(shè)置的信息),會被放入到程序緩存中!
而其他的輸出內(nèi)容,如:echo print_r var_dump 等,都會先被放入ob緩存中!
等程序結(jié)束的時候,或者ob緩存關(guān)閉的實(shí)話,將ob緩存的內(nèi)容在放入程序緩存中!從而保證響應(yīng)頭信息,始終在響應(yīng)主體內(nèi)容之前!

⑤參考資料:

http://blog.sina.com.cn/s/blog_9bbafb790101cmpb.html
php經(jīng)典實(shí)例
php手冊

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

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

相關(guān)文章

  • output_buffering 學(xué)習(xí)筆記(一)

    摘要:輸出緩存,在請求一個的過程中,實(shí)際上經(jīng)過三個緩存程序緩存緩存瀏覽器緩存緩存的幾個重要規(guī)則在服務(wù)中,如果我們開啟了緩存,則數(shù)據(jù)首先放入到中如何開啟有兩個方法在配置這里去掉號即可在頁面中使用通過打開的,則作用于所有的頁面,使用打開則只作用于 output_buffering(ob,輸出緩存), 在請求一個PHP的過程中,實(shí)際上經(jīng)過三個緩存:1. 程序緩存2 ob緩存 3. 瀏覽器緩存. ...

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

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

    harryhappy 評論0 收藏0
  • PHP中output buffering的原理及應(yīng)用

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

    XUI 評論0 收藏0
  • 淺析PHP的輸出緩沖控制

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

    wangjuntytl 評論0 收藏0
  • PHP的輸出緩沖區(qū)

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

    cyixlq 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<