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写app用的框架整理

PHP开发app常用的三种框架介绍 1、ThinkPHP框架 TP框架是一共快速兼容简单的轻量级国产PHP开发框架,使用面向对象的结构和MVC模式进行开发。它可以支持Windows、Li...

php 信息采集程序代码

复制代码 代码如下:<? //采集首页地址 $url="http://emotion.pclady.com.cn/skills/"; //获取页面代码 $rs=file_get_c...

动易数据转成dedecms的php程序

PS:这个可以举一反三,如新云或NB等asp文章系统都可转为dedecms或其它php的cms 复制代码 代码如下:<?php  //读取mdb数据库例程&nb...

深入php socket的讲解与实例分析

在这一章里你将了解到迷人而又让人容易糊涂的套接字(Sockets)。Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用socket...

php中unserialize返回false的解决方法

本文实例讲述了php中unserialize返回false的解决方法,分享给大家供大家参考。具体方法如下: php 提供serialize(序列化) 与unserialize(反序列化)...