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
php常用文件操作函数汇总
Nov 22 PHP
PHP中使用file_get_contents post数据代码例子
Feb 13 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
9个比较实用的php代码片段
Mar 15 PHP
PHP单链表的实现代码
Jul 05 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
PHP基于array_unique实现二维数组去重
Jul 14 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 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
用vue写一个日历
2020/11/02 Javascript
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
python关键字and和or用法实例
2015/05/28 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
2014年导购员工作总结
2014/11/18 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
庆元旦主持词
2015/07/06 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
python中的None与NULL用法说明
2021/05/25 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis