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

首頁 > 開發 > PHP > 正文

php檢測url頁面是否使用gzip壓縮小結

2024-05-04 21:47:59
字體:
來源:轉載
供稿:網友

gzip壓縮是一種很好的頁面壓縮傳送方式,我們經常會在服務器端打開了,這樣一個100K的文件通過gzip壓縮之后可能只有20KB不到,下面我來介紹一下gzip壓縮檢測與開啟方法.

如何打開gzip壓縮傳輸呢?

apache,第1步,代碼如下:

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

然后在http.conf加如下例代碼:

  1. # BEGIN GZIP  
  2. #apache開啟gzip壓縮,前提要裝gzip模塊哦  
  3. <ifmodule mod_deflate.c>  
  4. AddOutputFilterByType DEFLATE text/text text/html 
  5. text/plain text/xml text/css application/x-javascript 
  6. application/javascript 
  7. </ifmodule>  
  8. # END GZIP 

如果你是nginx服務器也可參考下面代碼:

  1. #nginx開啟gzip壓縮,放在location內  
  2. gzip on;  
  3. gzip_min_length 1000;  
  4. gzip_buffers 4 8k;  
  5. gzip_http_version 1.1;  
  6. gzip_types text/text text/html text/plain text/xml 
  7.  text/css application/x-javascript application/javascript; 

現在重啟一下apache或nginx 即可,那么要如何檢查是否正確開啟gzip呢,我們可使用下面php代碼:

  1. //采用 gzip壓縮網頁  
  2. //file_get_contents 直接獲得的網頁是亂碼。  
  3. header('Content-Type:text/html;charset=utf-8' );  
  4. $url = 'http://www.111cn.net';  
  5. $file = fopen($url"rb");    
  6. //只讀2字節  如果為(16進制)1f 8b (10進制)31 139則開啟了gzip ;  
  7. $bin = fread($file, 2);   
  8. fclose($file);    
  9. $strInfo = @unpack("C2chars"$bin);    
  10. $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    
  11. $isGzip = 0;    
  12. switch ($typeCode)    
  13. {  
  14.     case 31139:        
  15.       //網站開啟了gzip  
  16.         $isGzip = 1;  
  17.         break;  
  18.     default:    
  19.         $isGzip = 0;  
  20. }    
  21. $url = $isGzip ? "compress.zlib://".$url:$url; // 三元表達式  
  22. $mierHtml = file_get_contents($url); //獲得米爾軍事網數據  
  23. $mierHtml = iconv("gbk","utf-8",$mierHtml);  
  24. echo $mierHtml
  25. //例2代碼如下: 
  26. <?php  
  27. /*  
  28. php 判斷url頁面是否使用gzip壓縮  
  29. */ 
  30. $ch = curl_init("http://www.111cn.net/");//url不能有轉向  
  31. curl_setopt($ch,CURLOPT_HTTPHEADER,array('Accept-Encoding: gzip, deflate'));  
  32. curl_setopt($ch, CURLOPT_HEADER, 1);  
  33. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  34. $buffer = curl_exec($ch);  
  35. $curl_info = curl_getinfo($ch);  
  36. curl_close($ch);  
  37. $header_size = $curl_info["header_size"]; 
  38. //頭部信息長度  
  39. $headers = substr($buffer, 0, $header_size); 
  40. //獲取頭部信息  
  41. $body = substr($buffer$header_size); 
  42. //獲取網頁內容  
  43.    
  44. function getEncoding(&$headers){  
  45.     $arr=explode("rn",trim($headers));  
  46.     array_shift($arr);  
  47.     foreach($arr as $header){  
  48.         list($k,$v)=explode(':',$header);  
  49.         if ('content-encoding'==strtolower($k)){  
  50.             return trim($v);  
  51.         }  
  52.     }  
  53.     return false;  
  54. }     
  55.    
  56. $encoding=getEncoding($headers);  
  57.    
  58. if ($encoding) {  
  59.     echo "Using: ".$encoding;  
  60. }else{  
  61.     echo "None";  
  62. }  
  63.    
  64. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安义县| 大余县| 彭阳县| 张家港市| 黔西县| 卢湾区| 湖北省| 嘉善县| 富民县| 苍山县| 禄丰县| 安平县| 广州市| 彭水| 上虞市| 吉林市| 景东| 钟山县| 白山市| 丹凤县| 周口市| 东丽区| 大竹县| 临安市| 枣阳市| 马关县| 新建县| 桐梓县| 万全县| 乌兰县| 隆尧县| 临潭县| 论坛| 福建省| 大同县| 高台县| 长乐市| 军事| 郓城县| 北安市| 长岭县|