Comparing gzcompress/gzuncompress and bzcompress/bzdecompress, the bz combo is about 5x slower than gz.
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
bzcompress — 把一个字符串压缩成 bzip2 编码数据
$data
, int $block_size
= 4, int $work_factor
= 0): string|intbzcompress() 压缩了指定的字符串并以 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;
?>
Comparing gzcompress/gzuncompress and bzcompress/bzdecompress, the bz combo is about 5x slower than gz.
The blocksize parameter tells bzip to use 100 000 Byte * blocksize blocks to compress the string. In the example above we can see the output size and time needed of bz[2] to bz[9] are nearly the same, because there ware just 189 058 Byte of data to compress and in this case bz[2] to bz[9] means "compress all data et once".
So we may notice a bigger difference in speed and compression rate with bigger files.
the workfactor parameter sets, how fast bzip switches in the slower fallback algorithm, if the standard algorithm gets problems with much repetitive data. 0 means, bzip uses the default value of 30. This option is recommend.
For more information about the parameter look at http://www.bzip.org/1.0.3/html/low-level.html#bzcompress-init