中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

建站教程:控制PHP的輸出,緩存并壓縮動態(tài)頁面

2022-06-06    分類: 網(wǎng)站建設

PHP4中最令人滿意的事是——你可以讓PHP緩存所有由腳本生成的輸出,在你決定把它們送出之前,瀏覽器方是不會收到任何內容的。

mod_gzip是一個Apache模塊,其功能是使用Gzip壓縮靜態(tài)的html頁面,遵循IETF標準的瀏覽器可以接受gzip編碼(IE, Netscape等)。mod_gzip可以將頁面的下載時間提高4-5倍。我們強烈建議你在你的web服務器上使用mod_gzip。然而,我們還必須用PHP建立我們自己的壓縮引擎。在這篇文章里,我們將要介紹如何使用PHP的輸出控制函數(shù)來大幅加速頁面載入速度。

介紹PHP的輸出控制函數(shù)

PHP4中最令人滿意的事是——你可以讓PHP緩存所有由腳本生成的輸出,在你決定把它們送出之前,瀏覽器方是不會收到任何內容的。在腳本程序中你能用這些函數(shù)來設置header、cookies,然而這只是強大的輸出函數(shù)的一小部分功能。

告訴PHP處理器把所有的輸出重定向到一個內部的緩存(buffer)中。在調用ob_start之前,沒有輸出會被送到瀏覽器去。

該函數(shù)將“輸出緩存”(output buffer)以字符串的形式返回。你可以調用該函數(shù)把積累下來的輸出送到瀏覽器中。(僅在把buffering功能關閉之后!!)

返回緩存中的字符串的長度。

清空輸出緩存,并將輸出緩存關閉。在緩存中的內容輸出到瀏覽器之前,必須使用這個函數(shù)。

void 501([int flag])

用來打開/關閉隱含的flush動作開關(默認是關)。如果flush是開的,每次調用print/echo或是其它輸出命令的時候,輸出的內容會被立即送到瀏覽器端。

使用輸出控制來壓縮PHP輸出

你必須使用PHP4里編譯的Zlib擴展包來壓縮輸出。如果需要的話,可以查看PHP文檔中有關Zlib包的安裝指導。

首先,初始化輸出緩存:

之后,用print, echo, 或其他你喜歡的方法生成所有輸出內容,例如:

頁面生成后,我們取回輸出內容:

之后,必須檢測瀏覽器是否支持壓縮數(shù)據(jù)。如果支持,瀏覽器會發(fā)給服務器端一個ACCEPT-ENCODEING HTTP頭。我們只需檢查$HTTP_ACCEPT_ENCODING變量中是否有“gzip,deflate”字串。

這種方法使用起來既簡單又結構清晰。下面讓我們看看如何生成壓縮的輸出:

要想進行實際的測試,所有的腳本代碼如下:

當PHP4還沒問世,我不得不使用PHP3的時候,我對開發(fā)一些緩存機制來減少數(shù)據(jù)庫的載入、對文件系統(tǒng)的存取十分感興趣。在PHP3中沒有什么特別好的方法,但是有了輸出緩存之后,在PHP4中一切變得容易多了。

這有一個簡單的例子:

這是一個簡單的例子,使用輸出緩存,你可以建立一個復雜的內容生成系統(tǒng),對不同的塊或程序使用不同的緩存機制,等等……

結論

PHP輸出控制函數(shù)對把網(wǎng)站建設中腳本生成的輸出重定向到緩存中十分有用。為支持gzip的瀏覽器輸出壓過的緩存數(shù)據(jù)可以減少載入時間。也可作為緩存機制來減少對數(shù)據(jù)源的存取(數(shù)據(jù)庫或文件),這對使用XML意義重大。

如果我們用PHP建立一個引擎,緩存從數(shù)據(jù)源得到的數(shù)據(jù)(xml文檔和數(shù)據(jù)庫),并且動態(tài)的生成XML格式的內容(沒有外觀-presentation)我們可以得到這些XML的輸出,并使用XSLT轉換成任意一種我們想要的外觀格式(html, wap, palm, pdf等)。使用PHP4的輸出緩存和Sablotron XSLT擴展可以很好地完成這個任務。

文章名稱:建站教程:控制PHP的輸出,緩存并壓縮動態(tài)頁面
文章鏈接:http://www.rwnh.cn/news/164115.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、品牌網(wǎng)站設計、關鍵詞優(yōu)化、網(wǎng)站建設、響應式網(wǎng)站、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
资阳市| 眉山市| 泰和县| 禄丰县| 海口市| 句容市| 苏州市| 渭源县| 张家港市| 吉木乃县| 台湾省| 玉田县| 土默特左旗| 儋州市| 莱西市| 蒙城县| 榕江县| 巴塘县| 长子县| 兴城市| 精河县| 齐齐哈尔市| 奉节县| 张家港市| 桃源县| 容城县| 桂平市| 凌云县| 金阳县| 西青区| 广灵县| 南溪县| 遂川县| 壤塘县| 禹城市| 化州市| 陆河县| 慈溪市| 都昌县| 陇西县| 盱眙县|