详解 zlib 函数库

一,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;^/T Z0u

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_.d7W Z 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(y Nz5PC
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`"E c�N;Ik D0 gzclose($gz);
q.~d Ua"^Y c0
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+_I n,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`:I N)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"V A5G 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 — 返回一个压缩类型码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值