詳解 zlib 函數庫

一,gz文件打開/讀寫/關閉操做函數 gzopen — 打開一個gz文件(相似於fopen) gzwrite — 寫入gz文件(可安全用於二進制文件)(相似於fwrite) gzputs — gzwrite的別名(相似於fputs) gzread — 讀取gz文件(可安全用於二進制文件)(相似於fread) gzclose — 關閉一個已打開的gz文件指針(相似於fclose) 實例分析: (1)gzopen打開一個.gz爲後綴的文件用於讀/寫,注意,gzopen只能用於gzip格式文件 $fp = gzopen("/biuuu/biuuu.gz", "r"); (2)gzwrite或gzputs寫入gz文件,若是不存在則新建.gz後綴文件 $string = 'welcome to www.biuu.com'; $gz = gzopen('biuuu.gz','w9'); gzwrite($gz, $string); gzclose($gz); (3)gzread讀取整個gz文件 $filename = "/biuuu/biuuu.txt.gz"; $zd = gzopen($filename, "r"); $contents = gzread($zd, 10000); gzclose($zd); (4)gzclose關閉一個已打開的gz文件指針 二,gz文件數據讀取字符串函數 gzfile — 讀取整個gz文件爲一個數組(相似於file) gzgetc — 從gz文件指針中讀取字符(相似於fgetc) gzgets — 從gz文件指針中讀取一行(相似於fgets) gzgetss — 從gz文件指針中讀取一行並過濾掉 HTML 標記(相似於fgetss) gzeof — 測試gz文件指針是否到了文件結束的位置(相似於feof) 實例分析: (1)gzfile讀取整個gz文件爲一個數組 $lines = gzfile('biuuu.gz'); foreach ($lines as $line) { echo $line; } (2)gzgetc從gz文件指針中讀取字符 $gz = gzopen('biuuu.gz', 'r'); while (!gzeof($gz)) { echo gzgetc($gz); } gzclose($gz); (3)gzgets從gz文件指針中讀取一行 $handle = gzopen('biuuu.gz', 'r'); while (!gzeof($handle)) { $buffer = gzgets($handle, 4096); echo $buffer; } gzclose($handle); (4)gzgetss從gz文件指針中讀取一行並過濾掉 HTML 標記(同上gzgets) (5)gzeof 測試gz文件指針是否到了文件結束的位置 $gz = gzopen('biuuu.gz', 'r'); while (!gzeof($gz)) { echo gzgetc($gz); } gzclose($gz); 三,gz文件壓縮/解壓縮操做函數 gzcompress — 壓縮字符串 gzuncompress — 解壓字符串 gzdecode — 解密gzip壓縮的字符串 gzencode — 加密gzip壓縮的字符串 gzdeflate — 壓縮字符串(deflate是同時使用了LZ77算法與哈夫曼編碼的一個無損數據壓縮算法) gzinflate — 解壓字符串 實例分析: (1)gzcompress壓縮字符串,0-9等級 $compressed = gzcompress('www.biuuu.com', 9); echo $compressed; (2)gzuncompress解壓字符串 $compressed   = gzcompress('www.biuuu.com', 9); $uncompressed = gzuncompress($compressed); echo $uncompressed; (3)gzdecode與gzencode和gzdeflate與gzinflate使用同上 四,gz文件指針操做函數 gzrewind — 在gz文件指針中重定位 gzseek — 在gz文件指針中定位(相似於fseek) gztell — 返回gz文件指針讀/寫的位置(相似於ftell) 五,gz文件其它操做函數 gzpassthru —  輸出gz文件指針處的全部剩餘數據(相似於fpassthru) readgzfile — 把整個gz文件讀入一個數組中 zlib_get_coding_type — 返回一個壓縮類型碼
相關文章
相關標籤/搜索