比較 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