PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP基础 >> 基础文章 >> 

php对gzip文件或者字符串解压实例参考

php对gzip文件或者字符串解压实例参考

来源:互联网  作者:  发布时间:2009-01-03
要采集一个网站,目标站采用了gzip压缩传输网页,本来应该只要

要采集一个网站,目标站采用了gzip压缩传输网页,本来应该只要发送一个http头 Accept-Encoding: identity或者干脆不发送这个头等,就可以使目标站返回没有经过gzip压缩的页面了,不过很不幸,目标站无视客户端的请求,仍然返回gzip数据,造成乱码。

其实php对gzip解压很简单,用内置的gzdecode函数就可以了,不过很可惜我配置了半天也无法支持gzdecode函数,所以只好变通一下:

以下为引用的内容:

if (!function_exists('gzdecode')) {
function gzdecode ($data) {
$flags = ord(substr($data, 3, 1));
$headerlen = 10;
$extralen = 0;
$filenamelen = 0;
if ($flags & 4) {
$extralen = unpack('v' ,substr($data, 10, 2));
$extralen = $extralen[1];
$headerlen += 2 + $extralen;
}
if ($flags & 8) // Filename
$headerlen = strpos($data, chr(0), $headerlen) + 1;
if ($flags & 16) // Comment
$headerlen = strpos($data, chr(0), $headerlen) + 1;
if ($flags & 2) // CRC at end of file
$headerlen += 2;
$unpacked = @gzinflate(substr($data, $headerlen));
if ($unpacked === FALSE)
$unpacked = $data;
return $unpacked;
}
}

调用方法很简单:

以下为引用的内容:

$f=@file_get_contents("http://www.itlearner.com");
echo gzdecode($f);


延伸阅读:
告诉你如何关闭GZIP,多种程序方法
文件压缩成Gzip格式的类
使用mod_gzip加速你的html页面
PHP使用zlib扩展实现页面GZIP压缩输出
Tags: 解压   php压缩   压缩   gzip   php   实例   字符串   文件   ip   字符   zip  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号