gzcompress(json_encode($ arr)、9)で配列を圧縮しています。だから私はjson_encodeで配列を文字列に変換してからgzcompressで圧縮しています。しかし、結果の文字列のサイズに大きな違いは見つかりませんでした。圧縮前のサイズは488KB、圧縮後のサイズは442KBです。
文字列をさらに圧縮する方法はありますか?
前もって感謝します。
gzcompress(json_encode($ arr)、9)で配列を圧縮しています。だから私はjson_encodeで配列を文字列に変換してからgzcompressで圧縮しています。しかし、結果の文字列のサイズに大きな違いは見つかりませんでした。圧縮前のサイズは488KB、圧縮後のサイズは442KBです。
文字列をさらに圧縮する方法はありますか?
前もって感謝します。
数値が正しいかどうかわかりません。出力に6バイトを追加する代わりに使用できます(gzdeflate
最初に2バイト、最後に4バイト追加)。gzcompress
gzcompress
簡単なテストでは、2倍に圧縮して99バイトに圧縮された1756800の長さの文字列を示しています。一度圧縮すると、5164バイトになります。
$string = str_repeat('1234567890' . implode('', range('a', 'z')), 48800);
echo strlen($string); //1756800 bytes
$compressed = gzdeflate($string, 9);
$compressed = gzdeflate($compressed, 9);
echo strlen($compressed); //99 bytes
echo gzinflate(gzinflate($compressed));
文字列の圧縮がどの程度適切になるかは、圧縮するデータによって異なります。主にランダムデータで構成されている場合、サイズをそれほど改善することはできません。特定の使用法のために設計された多くのアルゴリズムがあります。
圧縮するデータが主に何で構成されているかを判断してから、適切な圧縮を選択する必要があります。
ちょうど今、私はあなたにbzcompressを紹介することしかできません、bzipは通常gzipよりも高い圧縮率を持っています。