php中gzip对文件或字符串解压缩的例子
时间:2021-07-01 10:21:17
帮助过:56人阅读
- /**
- * php自定义gzdecode解压缩gzip文件
- * edit bbs.it-home.org
- */
- 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://bbs.it-home.org);
- echo gzdecode($f);
- ?>
|