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

  其实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("http://www.glzy8.com");

  echo gzdecode($f);