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

转载于:https://my.oschina.net/u/919580/blog/133180

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值