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文章采集URL补全函数(FormatUrl)
Aug 02 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
Sep 28 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
PHP实现获取客户端IP并获取IP信息
Mar 17 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
PHP接入支付宝接口失效流程详解
Nov 10 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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
什么是数据抽象
2016/11/26 面试题
开放系统互连参考模型
2016/06/29 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
国防教育标语
2014/10/08 职场文书
加强作风建设心得体会
2014/10/22 职场文书
模范教师材料大全
2014/12/16 职场文书
护士实习自荐信
2015/03/06 职场文书
给校长的建议书范文
2015/09/14 职场文书
2019秋季运动会口号
2019/06/25 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
Redis中一个String类型引发的惨案
2021/07/25 Redis
react 路由Link配置详解
2021/11/11 Javascript