详解 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 — 返回一个压缩类型码

关于16位的OS尝试(2)

上次的文章结束的时候把一大段我的Boot Loader贴出来了,可能会让人迷惑.这里我又写了个小小的微缩版的16位实模式下的Boot Loader,大家看看吧.这里我再次说明一下,这个文章只是记录我自...
  • tangl_99
  • tangl_99
  • 2003-03-05 09:06:00
  • 2360

Zlib库学习总结

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

zlib的使用小例

  • 2012年09月26日 17:17
  • 85KB
  • 下载

python zlib

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

LINUX C函数库详解词典

  • 2013年05月04日 11:09
  • 44.6MB
  • 下载

zlib压缩编程函数详解

  • 2011年08月01日 19:52
  • 90KB
  • 下载

zlib 压缩函数库

  • 2012年10月30日 15:38
  • 574KB
  • 下载

zlib剖析(三)

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

ZLIB算法学习

原文地址:http://blog.csdn.net/wtyqm/article/details/7294242
  • chenlycly
  • chenlycly
  • 2014-11-02 23:34:03
  • 805

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

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

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