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 相关文章推荐
一个ftp类(ini.php)
Oct 09 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
php接口实现拖拽排序功能
Apr 23 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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中设置session用memcache来存储的方法总结
2016/01/14 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
js实现图片轮播效果
2015/12/19 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
python多线程并发实例及其优化
2019/06/27 Python
解决yum对python依赖版本问题
2019/07/05 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
python安装gdal的两种方法
2019/10/29 Python
python3正则模块re的使用方法详解
2020/02/11 Python
python matplotlib库的基本使用
2020/09/23 Python
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
高三语文教学反思
2016/02/16 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
小程序实现侧滑删除功能
2022/06/25 Javascript
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技