詳解 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;^/TZ0u

svd5P3WQT{0 (2)gzwrite或gzputs寫入gz文件,如果不存在則新建.gz後綴文件
Z [email protected]`(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 — 返回一個壓縮類型碼

發佈了168 篇原創文章 · 獲贊 5 · 訪問量 54萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章