php检测url页面是否使用gzip压缩小结
程序员文章站
2022-05-28 17:05:22
...
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模块哦AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript # END GZIP
如果你是nginx服务器也可参考下面代码:
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://www.phprm.com'; $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代码如下:
文章网址:
随意转载^^但请附上教程地址。