好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php检测url页面是否使用gzip压缩小结 - php高级应用

php检测url页面是否使用gzip压缩小结

gzip压缩是一种很好的页面压缩传送方式,我们经常会在服务器端打开了,这样一个100K的文件通过gzip压缩之后可能只有20KB不到,下面我来介绍一下gzip压缩检测与开启方法.

如何打开gzip压缩传输呢?

apache,第1步,代码如下:

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

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

# BEGIN GZIP   #apache开启gzip压缩,前提要装gzip模块哦   < ifmodule  mod_deflate.c >    AddOutputFilterByType DEFLATE text/text text/html  text/plain text/xml text/css application/x-javascript  application/javascript  </ ifmodule >    # END GZIP 

如果你是nginx服务器也可参考下面代码:

#nginx开启gzip压缩,放在location内   gzip on;   gzip_min_length 1000;   gzip_buffers 4 8k;   gzip_http_version 1.1;   gzip_types text/text text/html text/plain text/xml   text/css application/x-javascript application/javascript; 

现在重启一下apache或nginx 即可,那么要如何检查是否正确开启gzip呢,我们可使用下面php代码:

//采用 gzip压缩网页    //file_get_contents 直接获得的网页是乱码。    header( 'Content-Type:text/html;charset=utf-8'  );   $url  =  'http://HdhCmsTest111cn.net' ;   $file  =  fopen ( $url ,  "rb" );     //只读2字节  如果为(16进制)1f 8b (10进制)31 139则开启了gzip ;    $bin  =  fread ( $file , 2);    fclose( $file );     $strInfo  = @unpack( "C2chars" ,  $bin );     $typeCode  =  intval ( $strInfo [ 'chars1' ]. $strInfo [ 'chars2' ]);     $isGzip  = 0;     switch  ( $typeCode )     {        case  31139:                //网站开启了gzip             $isGzip  = 1;            break ;        default :              $isGzip  = 0;   }     $url  =  $isGzip  ?  "compress.zlib://" . $url : $url ; // 三元表达式   $mierHtml  =  file_get_contents ( $url );  //获得米尔军事网数据    $mierHtml  = iconv( "gbk" , "utf-8" , $mierHtml );   echo   $mierHtml ;  //例2代码如下:   <?php   /*    php 判断url页面是否使用gzip压缩    */   $ch  = curl_init( "http://HdhCmsTest111cn.net/" );//url不能有转向   curl_setopt( $ch ,CURLOPT_HTTPHEADER, array ( 'Accept-Encoding: gzip, deflate' ));   curl_setopt( $ch , CURLOPT_HEADER, 1);   curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1);   $buffer  = curl_exec( $ch );   $curl_info  = curl_getinfo( $ch );   curl_close( $ch );   $header_size  =  $curl_info [ "header_size" ];  //头部信息长度    $headers  =  substr ( $buffer , 0,  $header_size );  //获取头部信息    $body  =  substr ( $buffer ,  $header_size );  //获取网页内容        function  getEncoding(& $headers ){        $arr = explode ( "rn" ,trim( $headers ));        array_shift ( $arr );        foreach ( $arr   as   $header ){           list( $k , $v )= explode ( ':' , $header );            if  ( 'content-encoding' == strtolower ( $k )){                return  trim( $v );           }       }        return  false;   }          $encoding =getEncoding( $headers );       if  ( $encoding ) {        echo   "Using: " . $encoding ;   } else {        echo   "None" ;   }       ?> 

查看更多关于php检测url页面是否使用gzip压缩小结 - php高级应用的详细内容...

  阅读:42次