php对gzip文件或者字符串解压实例参考

yipeiwu_com7年前PHP代码库
      其实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("//www.jb51.net");      
echo gzdecode($f);     

相关文章

php常量详细解析

一、常量 常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。...

PHP遍历目录文件的常用方法小结

本文实例总结了PHP遍历目录文件的常用方法。分享给大家供大家参考,具体如下: 测试算法(源代码经过本站工具http://tools.jb51.net/code/jb51_php_form...

PHP获取某个月最大天数(最后一天)的方法

本文实例讲述了PHP获取某个月最大天数(最后一天)的方法。分享给大家供大家参考。具体如下: //获取 某个月的最大天数(最后一天) function getMonthLastDay(...

php+ajax实现文章自动保存的方法

本文实例讲述了php+ajax实现文章自动保存的方法。分享给大家供大家参考。具体分析如下: php+ajax文章自动保存的方法主是要方便用户,提高用户体验,我们就是用ajax把数据保存一...

PHP实现域名whois查询的代码(数据源万网、新网)

万网 whois(使用的接口为万网提供合法接口) 复制代码 代码如下: function whois_hichina($domain) { preg_match("|<pre>...