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

yipeiwu_com5年前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载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析

本文实例分析了PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法。分享给大家供大家参考,具体如下: imagecreatefrom 系列函数用于从文件或...

php输出指定时间以前时间格式的方法

本文实例讲述了php输出指定时间以前时间格式的方法。分享给大家供大家参考。具体分析如下: 比如说你需要在php中输出3天前,20分钟以前,可以参考下面的代码 function ago...

PHP输出两个数字中间有多少个回文数的方法

本文实例讲述了PHP输出两个数字中间有多少个回文数的方法。分享给大家供大家参考。具体分析如下: "回文数"是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读...

PHP封装的svn类使用内置svn函数实现根据svn版本号导出相关文件示例

本文实例讲述了PHP封装的svn类使用内置svn函数实现根据svn版本号导出相关文件。分享给大家供大家参考,具体如下: <?php $revision_array =...

PHP实现ftp上传文件示例

FTP上传是PHP实现的一个常见且非常重要的应用技巧,今天就来与大家分享一下PHP实现FTP上传文件的简单示例。希望对大家的PHP学习能带来一定的帮助。 主要代码如下: functi...