比较 gzcompress/gzuncompress 和 bzcompress/bzdecompress,bz 组合比 gz 慢约 5 倍。
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
bzcompress — 将字符串压缩为 bzip2 编码数据
bzcompress() 压缩给定的字符串并将其作为 bzip2 编码数据返回。
data
要压缩的字符串。
block_size
指定压缩期间使用的块大小,应为 1 到 9 之间的数字,其中 9 提供最佳压缩,但需要更多资源来实现。
work_factor
控制压缩阶段在遇到最坏情况、高度重复的输入数据时的行为。该值可以在 0 到 250 之间,其中 0 是一种特殊情况。
无论 work_factor
如何,生成的输出都是相同的。
压缩后的字符串,如果发生错误则为错误号。
示例 #1 压缩数据
<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>
比较 gzcompress/gzuncompress 和 bzcompress/bzdecompress,bz 组合比 gz 慢约 5 倍。
blocksize 参数告诉 bzip 使用 100 000 字节 * blocksize 块来压缩字符串。在上面的示例中,我们可以看到 bz[2] 到 bz[9] 的输出大小和所需时间几乎相同,因为只有 189 058 字节的数据要压缩,在这种情况下,bz[2] 到 bz[9] 表示“一次压缩所有数据”。
因此,我们可能会注意到在压缩更大文件时,速度和压缩率会有更大的差异。
workfactor 参数设置 bzip 在标准算法遇到大量重复数据时切换到速度较慢的回退算法的速度。0 表示 bzip 使用默认值 30。建议使用此选项。
有关参数的更多信息,请查看 http://www.bzip.org/1.0.3/html/low-level.html#bzcompress-init