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 相关文章推荐
dedecms中显示数字验证码的修改方法
Mar 21 PHP
使用PHP批量生成随机用户名
Jul 10 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
PHP引用返回用法示例
May 28 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
php 数据结构之链表队列
Oct 17 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 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
php checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
php生成图片缩略图的方法
2015/04/07 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
jquery 延迟执行实例介绍
2013/08/20 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
django认证系统 Authentication使用详解
2019/07/22 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
PHP开发的一般流程
2013/08/13 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
施工员岗位职责
2014/03/16 职场文书
2014公司年终工作总结
2014/12/19 职场文书
离婚起诉书范本
2015/05/18 职场文书
组织委员竞选稿
2015/11/21 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android