详解 zlib 函数库

原创 2010年12月17日 21:10:00

一,gz文件打开/读写/关闭操作函数IT我最牛-程序员的技术讨论与分享园地&aH!B WH
gzopen — 打开一个gz文件(类似于fopen)
;MK0r'X$@0 gzwrite — 写入gz文件(可安全用于二进制文件)(类似于fwrite)
On5e!y8I,R5~7[0 gzputs — gzwrite的别名(类似于fputs)
Du-ed)Bg m Nah-}c&a0 gzread — 读取gz文件(可安全用于二进制文件)(类似于fread)
^Z�['OX(j3y5o0 gzclose — 关闭一个已打开的gz文件指针(类似于fclose)
cRk})W#a/FXy0 IT我最牛-程序员的技术讨论与分享园地6t a0Y[)`,d2m
实例分析:IT我最牛-程序员的技术讨论与分享园地�Bi A`H(@"a
(1)gzopen打开一个.gz为后缀的文件用于读/写,注意,gzopen只能用于gzip格式文件
8X2dJ+QM1X"P0 $fp = gzopen("/biuuu/biuuu.gz", "r");IT我最牛-程序员的技术讨论与分享园地KL;^/TZ0u

svd5P3WQT{0 (2)gzwrite或gzputs写入gz文件,如果不存在则新建.gz后缀文件
Z S6@C.V0`(M0 $string = 'welcome to www.biuu.com';IT我最牛-程序员的技术讨论与分享园地z-I^i8A3v6f? X]
$gz = gzopen('biuuu.gz','w9');IT我最牛-程序员的技术讨论与分享园地�r1w1Z"PU
gzwrite($gz, $string);
8r1o1_.d7WZ o G|0 gzclose($gz);IT我最牛-程序员的技术讨论与分享园地7p&|*]sLk|]

e(X�c qYi0 (3)gzread读取整个gz文件IT我最牛-程序员的技术讨论与分享园地1b,J$u8~d$mD
$filename = "/biuuu/biuuu.txt.gz";
#E!m1q/Yb0 $zd = gzopen($filename, "r");
)Tss(`~R0 $contents = gzread($zd, 10000);IT我最牛-程序员的技术讨论与分享园地c�O0[q&mZ]t)`Y:~
gzclose($zd);
K.gY]W0 IT我最牛-程序员的技术讨论与分享园地P~x8z*Q1Tu
(4)gzclose关闭一个已打开的gz文件指针IT我最牛-程序员的技术讨论与分享园地0tJ/Y,/q"[E/mP

soS mR4N(yB'L0 二,gz文件数据读取字符串函数IT我最牛-程序员的技术讨论与分享园地NFP2@5Q8l7S7uQ
gzfile — 读取整个gz文件为一个数组(类似于file)
!x0/}+/X0 gzgetc — 从gz文件指针中读取字符(类似于fgetc)IT我最牛-程序员的技术讨论与分享园地 `S*jZt
gzgets — 从gz文件指针中读取一行(类似于fgets)
}WF8xPHY0i0 gzgetss — 从gz文件指针中读取一行并过滤掉 HTML 标记(类似于fgetss)
D1Y6w1P1X:t0 gzeof — 测试gz文件指针是否到了文件结束的位置(类似于feof)IT我最牛-程序员的技术讨论与分享园地g$O rMj6X

w'Wk4` eZd!Z+O0 实例分析:
V|:l�Y1U b"g4Iw0 (1)gzfile读取整个gz文件为一个数组
&Kpr#z-sid)B0 $lines = gzfile('biuuu.gz');IT我最牛-程序员的技术讨论与分享园地ON(yNz5PC
foreach ($lines as $line) {IT我最牛-程序员的技术讨论与分享园地K eB0~X
echo $line;IT我最牛-程序员的技术讨论与分享园地5b�]M3lEwd
}
3k,M;_|LD;t0 (2)gzgetc从gz文件指针中读取字符IT我最牛-程序员的技术讨论与分享园地)JF1kS&wLRw&[
$gz = gzopen('biuuu.gz', 'r');
Zi_:ph4n0 while (!gzeof($gz)) {
@'Kmo m*Z0 echo gzgetc($gz);
D%G2g/p8`7IZ)f0 }
;k'r7R`"Ec�N;Ik D0 gzclose($gz);
q.~dUa"^Yc0
Pf!m!_0m8t0 (3)gzgets从gz文件指针中读取一行IT我最牛-程序员的技术讨论与分享园地7l)W/[ O*q+L|5z"W#UED4E
$handle = gzopen('biuuu.gz', 'r');IT我最牛-程序员的技术讨论与分享园地4h8f/wuW m0Q
while (!gzeof($handle)) {IT我最牛-程序员的技术讨论与分享园地3G&nM/].Z/ ]
$buffer = gzgets($handle, 4096);IT我最牛-程序员的技术讨论与分享园地1`9[J/t{e
echo $buffer;
HA6N/IR{1C)/0 }
*Uq2FHb;RjV0 gzclose($handle);
dt9M.h�^;s$k*Nx*z d8?0 IT我最牛-程序员的技术讨论与分享园地T@%P3W+_In,Woy
(4)gzgetss从gz文件指针中读取一行并过滤掉 HTML 标记(同上gzgets)
!dgW%@M0
;xq&g)b�eV-B0 (5)gzeof 测试gz文件指针是否到了文件结束的位置IT我最牛-程序员的技术讨论与分享园地,E L:_7}(A�z7l4GM
$gz = gzopen('biuuu.gz', 'r');
9pa4]ay?rm0 while (!gzeof($gz)) {
d!|/y2[ n"{0 echo gzgetc($gz);IT我最牛-程序员的技术讨论与分享园地yA&[/A./�O-I$a.rd
}
L;tZ@%~FR&v0 gzclose($gz);IT我最牛-程序员的技术讨论与分享园地rGLf*y}x,D,s

O7wSn9Wg2W.x0_,p0 三,gz文件压缩/解压缩操作函数
2n;g e#h.n,HC Z0 gzcompress — 压缩字符串
:gm`!z `3]Lm|h~*_D0 gzuncompress — 解压字符串
!{8R,V D#R#r}&/ @7m$N0 IT我最牛-程序员的技术讨论与分享园地"pp!T3dg[
gzdecode — 解密gzip压缩的字符串
9X?3J/NV0 gzencode — 加密gzip压缩的字符串
0Ry] WAs0
$X`:IN)x5i5V0 gzdeflate — 压缩字符串(deflate是同时使用了LZ77算法与哈夫曼编码的一个无损数据压缩算法)IT我最牛-程序员的技术讨论与分享园地pt&d0E6W4Z i5yl
gzinflate — 解压字符串IT我最牛-程序员的技术讨论与分享园地/6H9FY,k8S;P7O.o `
IT我最牛-程序员的技术讨论与分享园地'vjd3G@ C
实例分析:IT我最牛-程序员的技术讨论与分享园地%?PNA�O%r3/$a,{
(1)gzcompress压缩字符串,0-9等级IT我最牛-程序员的技术讨论与分享园地rT ^M"VA5G TfF6l n4V
$compressed = gzcompress('www.biuuu.com', 9);
&s//n } EFX J0 echo $compressed;
(de9DYC~3m~@0
r{jy4Ha#Z:q0 (2)gzuncompress解压字符串IT我最牛-程序员的技术讨论与分享园地)xPa'?�R(pn@
$compressed   = gzcompress('www.biuuu.com', 9);IT我最牛-程序员的技术讨论与分享园地-Q-L,}Tj@?6y)`|z6k
$uncompressed = gzuncompress($compressed);
M.Ip�e$JWB0 echo $uncompressed;
;U.W|kwtoI.K|_0 IT我最牛-程序员的技术讨论与分享园地f]5E:O6n(f6k
(3)gzdecode与gzencode和gzdeflate与gzinflate使用同上
Y%b)p%Vq5Fz0
E'lX/X"/9L+N-W0 四,gz文件指针操作函数
5[g,n4Dq&w)A0 gzrewind — 在gz文件指针中重定位
`7Qv Bt�I'hk)c C0 gzseek — 在gz文件指针中定位(类似于fseek)
%{1v6p^]1m yV0 gztell — 返回gz文件指针读/写的位置(类似于ftell)
,v.@#pQ-_.L~0yW0
6]/eB8OH&{Z0 五,gz文件其它操作函数IT我最牛-程序员的技术讨论与分享园地9j4e[!Iw)DOpl3}@
gzpassthru —  输出gz文件指针处的所有剩余数据(类似于fpassthru)IT我最牛-程序员的技术讨论与分享园地xs%^tOx _
readgzfile — 把整个gz文件读入一个数组中
9g9UtR2Wp!m;sq1Q N0 zlib_get_coding_type — 返回一个压缩类型码

Zlib库学习总结

zlib类库提供了很多种压缩和解压缩的方式,由于时间的关系我只学习一下内容,以下是我在实现web 服务器压缩数据网页中使用到一些函数和常用数据结构、常量等。 zlib使用过程 ...
  • ghevinn
  • ghevinn
  • 2015年05月15日 17:27
  • 1482

python zlib

使用zlib.compress可以压缩字符串。使用zlib.decompress可以解压字符串。如下  代码如下 复制代码 #coding=utf-8 import...
  • stonesharp
  • stonesharp
  • 2014年05月12日 21:14
  • 916

zlib库剖析(一)

本文整理自zlib.net以及zlib 1.2.7的手册页http://zlib.net/manual.html。     zlib是一套免费、通用、法律上不受限制的无损数据压缩库,可以在任何硬件及...
  • damenhanter
  • damenhanter
  • 2014年06月14日 17:15
  • 16107

zlib剖析(三)

我们常常疑惑不知道怎么样使用deflate()和inflate()。用户想知道应该在什么时候提供更多输入,什么时候使用更多输出,怎么处理Z_BUF_ERROR,怎么确保处理正确地终止,等等。examp...
  • damenhanter
  • damenhanter
  • 2014年06月14日 17:17
  • 1389

ZLIB算法学习

原文地址:http://blog.csdn.net/wtyqm/article/details/7294242
  • chenlycly
  • chenlycly
  • 2014年11月02日 23:34
  • 717

Zlib一些参数详解

zlib类库提供了很多种压缩和解压缩的方式,由于时间的关系我只学习一下内容,以下是我在实现web 服务器压缩数据网页中使用到一些函数和常用数据结构、常量等。 zlib使用过程 压缩...
  • u011334621
  • u011334621
  • 2014年08月27日 18:41
  • 1822

zlib库使用简单讲解

由于想学习libpng库,搜索资料发现libpng库依赖zlib库的gz格式文件压缩和解压功能,所以先得了解下zlib库的功能和使用方法。 本文大部分摘自:http://blog.163.com/y...
  • ostar_liang
  • ostar_liang
  • 2013年11月23日 14:42
  • 6543

Async详解

为了适应异步编程,减少回调的嵌套,我尝试了很多库。最终觉得还是async最靠谱。 地址:https://github.com/caolan/async Async的内容分为三部分: ...
  • baby97
  • baby97
  • 2015年11月09日 15:51
  • 360

zlib压缩和解压的使用

1、unzOpen(filePath) 这个方法可以打开一个压缩文件,返回一个句柄,这个句柄将在后面的方法中被用到。 2、unzGetGlobalInfo() 这个可以得...
  • TinyHum
  • TinyHum
  • 2012年09月11日 09:20
  • 5704

【Linux】【C/C++】Linux C函数库详解词典

From:http://baike.baidu.com/view/1996330.htm 百科名片 本书精选381个Linux指令、1729个常用操作范例,并提供3种指令索引,满足全方位学...
  • WolfOfSiberian
  • WolfOfSiberian
  • 2014年10月12日 11:53
  • 985
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:详解 zlib 函数库
举报原因:
原因补充:

(最多只允许输入30个字)