摘要:我們要說一下中的緩存大概有哪些在中,我們可以粗略的將緩存分為客戶端緩存緩存,服務器端緩存緩存。由于是基于架構的,所有,我們可以理解為瀏覽器端的緩存,服務器端緩存。
① 我們要說一下php中的緩存大概有哪些!
在php中,我們可以粗略的將緩存分為客戶端緩存(Browser緩存),服務器端緩存(Server緩存)。由于php是基于b/s架構的,所有,我們可以理解為瀏覽器端的緩存,服務器端緩存。
在服務器端php自帶的緩存中,主要可以分為兩大類緩存!程序緩存和ob緩存!這也是我們學習服務器端緩存的主要內容!
A、客戶端向服務器端發送請求響應!
B、apache服務器加載了php模塊,開啟相應的進程(或線程)運行相應的php腳本頁面!
C、在沒有開啟ob緩存的情況下,運行的結果全部都會被放到程序緩存中,然后打包發送給瀏覽器!瀏覽器對頁面進行渲染,生成我們最后看到的web頁面!
D、在開啟了bo緩存的情況下,運行的結果會被分別放入到ob緩存和程序緩存中,當程序運行到最后一行的時候,就會將ob緩存中的數據刷回到程序緩存中,然后打包返回給瀏覽器!瀏覽器對頁面進行渲染,生成我們看到的web頁面!
a、在腳本剛開的時候調用ob_start()函數,它的作用是開啟ob緩存,究其實質是,在當前腳本中,是將php.ini配置文件的output_buffering選項開啟!但是,除了開啟ob緩存,其實obstart還有一個回調函數!在下面的例子,我們將所有的http://替換為了ftp://
舉例如下:
"; echo $url; } //將ob緩存中的內容刷到程序緩存中,并關閉ob緩存 ob_end_flush(); ?>
注意:在php5.3以后ob緩存默認是開啟的!
b、將ob緩存中的數據,刷回到程序緩存中!
ob_flush(),將ob緩存中的內容,刷到程序緩存中!但并沒有關閉ob緩存
ob_end_flush(),關閉ob緩存,并將數據刷回到程序緩存中!
c、清空ob緩存中的內容
ob_clean(),將ob緩存中的內容清空!
ob_end_clean(),將ob緩存中的數據清空,并且關閉ob緩存!
d、獲的當前ob緩存中的內容!
ob_get_contents(),獲取當前ob緩存中的內容
ob_get_clean(),獲取當前ob緩存中的內容,并且清空當前的ob緩存
ob緩存在各個方面都有應用,但是,本人知道的主要是在兩個方面!
a、當網站準備做網站靜態化的時候,選擇ob緩存是一個不錯的選擇!
b、解決Warning: Cannot modify header information - headers already sent by的錯誤!
究其發生錯誤的原因:是因為響應頭和相應主體位置錯位導致的!正常情況下,服務器返回給瀏覽器的相應內容,應該是:響應頭+響應主體!
但是,如果我們開啟了ob緩存,那么相應頭信息(一般也就是header()函數進行設置的信息),會被放入到程序緩存中!
而其他的輸出內容,如:echo print_r var_dump 等,都會先被放入ob緩存中!
等程序結束的時候,或者ob緩存關閉的實話,將ob緩存的內容在放入程序緩存中!從而保證響應頭信息,始終在響應主體內容之前!
http://blog.sina.com.cn/s/blog_9bbafb790101cmpb.html
php經典實例
php手冊
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/20781.html
摘要:輸出緩存,在請求一個的過程中,實際上經過三個緩存程序緩存緩存瀏覽器緩存緩存的幾個重要規則在服務中,如果我們開啟了緩存,則數據首先放入到中如何開啟有兩個方法在配置這里去掉號即可在頁面中使用通過打開的,則作用于所有的頁面,使用打開則只作用于 output_buffering(ob,輸出緩存), 在請求一個PHP的過程中,實際上經過三個緩存:1. 程序緩存2 ob緩存 3. 瀏覽器緩存. ...
摘要:返回內部緩沖區的內容,關閉緩沖區。返回緩沖區的長度,如果緩沖區未被激活,則返回。得到所有輸出緩沖區的狀態。使用輸出緩沖,可以將讀取的文件讀入緩沖區,達到一定大小時傳送給用戶,再繼續讀取,實現分片的效果。 一、概念 在PHP運行的過程中,可以將會產生輸出的函數或操作結果暫時保存在PHP的緩沖區,只有當緩沖區滿了、或者PHP運行完畢、或者在必要時候進行輸出,才會將數據輸出到瀏覽器,此緩沖數...
摘要:緩存過程在請求一個的過程中,實際上經過三個緩存程序緩存緩存瀏覽器緩存開啟的兩個方法在配置這里去掉號即可在頁面中使用通過打開的,則作用于所有的頁面。 php緩存過程 在請求一個PHP的過程中,實際上經過三個緩存: 程序緩存 ob緩存 瀏覽器緩存. 開啟ob的兩個方法 1.在php.ini 配置 ;output_buffering = 4096 這里去掉;號即可 2 在php頁面中使用...
摘要:默認為是一個回調函數,將腳本的所有輸出,用所定義的函數進行處理。在輸出緩沖區的回調函數中使用這些函數,會導致未定義的錯誤。 簡介 PHP有輸出時,可以用輸出控制函數來控制輸出 緩沖階段 ob_start(),將內部緩沖區(buffer)打開。當PHP遇到echo,printf等輸出語句時, PHP就會將要輸出的數據放入緩沖區(buffer)中,等待輸出。而只有當緩沖區滿了或者php運行...
閱讀 2910·2021-11-24 09:39
閱讀 1168·2021-11-02 14:38
閱讀 4163·2021-09-10 11:26
閱讀 2753·2021-08-25 09:40
閱讀 2314·2019-08-30 15:54
閱讀 485·2019-08-30 10:56
閱讀 2751·2019-08-26 12:14
閱讀 3221·2019-08-26 12:13