php对gzip文件或者字符串解压实例参考
作者:bea
其实php对gzip解压很简单,用内置的gzdecode函数就可以了,不过很可惜我配置了半天也无法支持gzdecode函数,所以只好变通一下: 代码如下: if(!function_exists('gzdecode')){ functiongzdecode($data){ $flags=ord(substr($data,3,1)); $headerlen=10; $extralen=0; $filenamelen=0; if($flags&4){
其实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://");
echo gzdecode($f);
有用 | 无用
代码如下:
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://");
echo gzdecode($f);
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 推荐学习php sesson的朋友必看PHP会话(Session)使用入门
- php多数据库支持的应用程序设计
- PHP+MYSQL 出现乱码的解决方法
- php自动适应范围的分页代码
- 用PHP读取RSS feed的代码
- IStream与TStream之间的相互转换
- 特详细的PHPMYADMIN简明安装教程
- phpmyadmin的安装与使用图文教程
- php-accelerator网站加速PHP缓冲的方法
- 新安装的MySQL数据库需要注意的安全知识
- MySql中正则表达式的使用方法描述
- php自动跳转中英文页面
- PHP一些常用的正则表达式字符的一些转换
- php 全文搜索和替换的实现代码
- PHP中$_SERVER的详细参数与说明
- php include的妙用,实现路径加密
- php5编程中的异常处理详细方法介绍
- php intval的测试代码发现问题
- php在线打包程序源码