php检测url页面是否使用gzip压缩小结
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-05 14:45:40 浏览: 评论:0
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://www.111cn.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://www.111cn.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";
- }
- ?>
Tags: 检测url页面 gzip压缩
相关文章
- ·PHP中zlib扩展实现GZIP压缩输出各种方法总结(2014-08-28)
- ·php使用gzip压缩传输js和css文件的方法(2021-06-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)