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的类 功能齐全的发送邮件类
Oct 09 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
理解php依赖注入和控制反转
May 11 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
php给数组赋值的实例方法
2019/09/26 PHP
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
js实现简单的打印表格
2020/01/15 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
python读取和保存视频文件
2018/04/16 Python
python3爬取数据至mysql的方法
2018/06/26 Python
详解Python中的正则表达式
2018/07/08 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
计算机学生的自我评价分享
2014/02/18 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
法律专业求职信
2014/05/24 职场文书
合作协议书模板2014
2014/09/26 职场文书
先进人物事迹材料
2014/12/29 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
红楼梦读书笔记
2015/06/25 职场文书
学校食堂管理制度
2015/08/04 职场文书
2016年校长新年寄语
2015/08/17 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android