国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP zlib擴展實現頁面GZIP壓縮輸出

PHP zlib擴展實現頁面GZIP壓縮輸出

2019-11-01 13:49PHP教程網 PHP教程

GZIP(GNU-ZIP)是一種壓縮技術。經過GZIP壓縮后頁面大小可以變為原來的30%甚至更小。這樣用戶瀏覽的時候就會感覺很爽很愉快!

要實現GZIP壓縮頁面需要瀏覽器和服務器共同支持,實際上就是服務器壓縮,傳到瀏覽器后瀏覽器解壓并解析。瀏覽器那邊不需要我們擔心,因為現在絕大多數瀏覽器都支持解析GZIP過的頁面。我們只要把頁面在服務器端壓縮再輸出到瀏覽器就行了。 

有點羅嗦,下面說正事: 

正如要制作壓縮餅干,先要拿到原料,要壓縮一個頁面,首先要獲得要輸出的內容。PHP中的ob_start()(ob => output buffer)函數可以實現這個功能,它可以把程序里準備輸出的內容先放到一個叫做“緩沖區”的地方,當然,你可以理解為制作壓縮餅干的暫時放原料的工作臺。 
這個函數一定要在頁面輸出之前使用,所以一般把它放在代碼的最頂端。因為它就像是一個工作臺,所以你要在原料到來之前就要準備好它,否則原料來了沒地方放,會出問題的。用ob_start()得到要壓縮的頁面之后,我們就可以制作壓縮餅干了,不對,應該是可以壓縮頁面了!不過好像還缺少一臺壓縮機, EZ,我們用PHP帶的zlib擴展做一臺: 

復制代碼代碼如下:


function ob_gzip($content) // $content 就是要壓縮的頁面內容,或者說餅干原料 

if( !headers_sent() && // 如果頁面頭部信息還沒有輸出 
extension_loaded("zlib") && // 而且zlib擴展已經加載到PHP中 
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //而且瀏覽器說它可以接受GZIP的頁面 

$content = gzencode($content." \n//此頁已壓縮",9); 為準備壓縮的內容貼上“//此頁已壓縮”的注釋標簽,然后用zlib提供的gzencode()函數執行級別為9的壓縮,這個參數值范圍是0-9,0表示無壓縮,9表示最大壓縮,當然壓縮程度越高越費CPU。 

//然后用header()函數給瀏覽器發送一些頭部信息,告訴瀏覽器這個頁面已經用GZIP壓縮過了! 
header("Content-Encoding: gzip"); 
header("Vary: Accept-Encoding"); 
header("Content-Length: ".strlen($content)); 

return $content; //返回壓縮的內容,或者說把壓縮好的餅干送回工作臺。 


壓縮機做好了之后,我們把壓縮機放到工作臺上,于是原來的ob_start()變成 

ob_start('ob_gzip'); //沒錯,就是給ob_start()加一個參數,參數名就是我們剛才做的“壓縮機”的函數名。這樣當內容進入緩沖區后PHP就會調用ob_gzip函數把它壓縮了。 
好了,所有的工作已完成,最后交貨: 

ob_end_flush(); //結束緩沖區,輸出內容。當然,不用這個函數也行,因為程序執行到最后會自動將緩沖區內容輸出。 
完整的示例如下: 

復制代碼代碼如下:


<?php 
//啟用一個帶有ob_gzip壓縮機的工作臺 
ob_start('ob_gzip'); 
//準備一些待壓縮的內容 
for($i=0; $i<100; $i++) 

echo('這里是壓縮餅干的原料,這里是壓縮餅干的原料,原料'); 

//輸出壓縮成果 
ob_end_flush(); 
//這是ob_gzip壓縮機 
function ob_gzip($content) 

if( !headers_sent() && 
extension_loaded("zlib") && 
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) 

$content = gzencode($content." \n//此頁已壓縮",9); 

header("Content-Encoding: gzip"); 
header("Vary: Accept-Encoding"); 
header("Content-Length: ".strlen($content)); 

return $content; 

?> 


經過實際測試,上面代碼中如果不用GZIP,是4.69KB=4802.56B,啟用GZIP后縮小為104B ,呃……我數學可能不好,自己算下壓縮到了原來的百分之多少吧。。 

另外,下面是用FlashGet獲取的日志信息,可以看到我們程序里加的header信息: 

復制代碼代碼如下:


Fri Jan 25 17:53:10 2008 HTTP/1.1 200 OK 
Fri Jan 25 17:53:10 2008 Server: Microsoft-IIS/5.1 
Fri Jan 25 17:53:10 2008 Date: Fri, 25 Jan 2008 09:53:10 GMT 
Fri Jan 25 17:53:10 2008 Connection: close 
Fri Jan 25 17:53:10 2008 X-Powered-By: PHP/5.2.5 
Fri Jan 25 17:53:10 2008 Content-Encoding: gzip 
Fri Jan 25 17:53:10 2008 Vary: Accept-Encoding 
Fri Jan 25 17:53:10 2008 Content-Length: 104 
Fri Jan 25 17:53:10 2008 Content-type: text/html 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩欧美视频 | 日本不卡在线观看 | 不卡黄色片| 亚洲精品日韩在线 | 久久久久久久久成人 | 午夜精品视频在线观看 | 日本免费在线 | 欧美日韩一级视频 | 91精品国产一区二区三区免费 | 伊人久久精品久久亚洲一区 | 一区二区三区高清不卡 | 一区二区三区在线看 | 毛片网站大全 | 欧美一级片aaa | 国产精品自拍在线观看 | 久久久五月天 | 色天天综合 | 一二三区视频 | 伊人欧美一区 | 色综合久久久久 | 免费观看av网站 | 日本99精品| 亚洲激情久久 | 免费看黄色av | 成人爽a毛片一区二区免费 久久久久亚洲精品 | 亚洲乱码国产乱码精品精98午夜 | 国产激情精品一区二区三区 | 国产精品久久久久久久久小说 | 中文字幕亚洲一区 | 污污视频免费网站 | 精品视频在线播放 | 欧美视频区 | 日韩激情免费视频 | 国产精品3区 | 午夜欧美一区二区三区在线播放 | 99精品久久 | 狠狠综合 | 欧美不卡 | 做a视频| 精品三级三级三级三级三级 | 美女视频黄色 |