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


Posted in PHP onJuly 25, 2008

      其实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("https://3water.com");       
echo gzdecode($f);     
PHP 相关文章推荐
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
PHP实现视频文件上传完整实例
Aug 28 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
ThinkPHP数据操作方法总结
Sep 28 PHP
PHP目录操作实例总结
Sep 27 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
php+mysql写的简单留言本实例代码
Jul 25 #PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 #PHP
PHP4中session登录页面的应用
Jul 25 #PHP
PHP 表单提交给自己
Jul 24 #PHP
PHP 得到根目录的 __FILE__ 常量
Jul 23 #PHP
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 #PHP
使用PHP socke 向指定页面提交数据
Jul 23 #PHP
You might like
调频问题解答
2021/03/01 无线电
PHP中date()日期函数有关参数整理
2011/07/19 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
在Python中给Nan值更改为0的方法
2018/10/30 Python
opencv 阈值分割的具体使用
2020/07/08 Python
python爬虫---requests库的用法详解
2020/09/28 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
销售员自我评价怎么写
2013/09/19 职场文书
物流创业计划书
2014/02/01 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
代理协议书
2014/04/22 职场文书
2014年收银工作总结
2014/11/13 职场文书
先进基层党组织材料
2014/12/25 职场文书
廉洁自律证明
2015/06/24 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
求职自我评价参考范文
2019/05/16 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS