ホームページ > バックエンド開発 > PHPチュートリアル > PHP文字列圧縮方式の比較例_PHPチュートリアル

PHP文字列圧縮方式の比較例_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:40:16
オリジナル
1057 人が閲覧しました

php が提供する文字列圧縮メソッドは次のとおりです。

1.gzcompress — 文字列を圧縮します

この関数は、ZLIB データ形式を使用して指定された文字列を圧縮します

2.gzencode — gzip 圧縮文字列を作成します

この関数は圧縮バージョンを返します。 gzip プログラムの出力と互換性のある入力データの変換

3.gzdeflate — 文字列を圧縮します

この関数は、DEFLATE データ形式を使用して指定された文字列を圧縮します

4.bzcompress — 文字列を bzip2 でエンコードされたデータに圧縮します

bzcompress() は、指定された文字列を圧縮し、bzip2 エンコードでデータを返します。

以下は、中国語と英語の数値をそれぞれ圧縮するための 4 つの方法の圧縮比較です

コードをコピーします コードは次のとおりです:


$str1 = 'レイアウト 1 は、レイアウトとは、簡単に言えば、要素のサイズと位置を設定することです。 Ext のレイアウト システムには、コンポーネント、レイアウト、コンテナが含まれます。コンテナは、コンポーネントのサイズと位置を管理できる特別なコンポーネントです。 コンテナーは doLayout を通じてレイアウトを再計算し、DOM を更新します。2 手動のレイアウトは不要で、フレームワークが自動的に処理します。 ';

$str2 = '!@#$%^&*()QWERTYUIOPSDFGHJKL!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNMa!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&* ()RTYUIOPD:ZXCVBNM#!@#!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM-!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD$%^&*( )ERTYUIODFGHJ!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM]!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPDKLXCVBNM@#$%^&*()RTYUIOPDFGHJKLCVBNMFGHJTYU%^&RFGHJ4d56g7h8ui7h8 ujirqwerqh8 ';

echo '圧縮中国語比較

';
compress_comp($str1, 1000) // 1000回の圧縮と1000回の解凍を比較します。
echo '圧縮された英語の数値の比較

';
compress_comp($str2, 1000) // 1000回の圧縮と1000回の解凍を比較します

/ * 圧縮 */
function compress_comp($str, $num){

$func_compress = array('gzcompress', 'gzencode', 'gzdeflate', 'bzcompress');

echo '原文:'.$str .'

';
echo '元のテキストサイズ:'.strlen($str).'

'

for($i=0,$length= count($func_compress ); $i
$starttime = get_microtime();
for($jswitch($func_compress i]){
case 'gzcompress':
$mstr = gzcompress($str, 9); // 解凍方法: gzuncompress
break;
case 'gzencode':
$mstr = gzencode($str, 9); / 解凍方法: gzdecode php>=5.4
break;
case 'gzdeflate':
$mstr = gzdeflate($str, 9); // 解凍方法: gzinflate
case 'bzcompress':
$mstr = bzcompress; ($str, 9); // 解凍方法: bzdecompress
}
}
echo $func_compress[$i].'消費時間: '.round(($endtime-$starttime)*1000,5).'ms&​​lt;br>
'
}
}


/* マイクロタイムを取得 */
function get_microtime(){
list( $usec, $sec) =explode(' ', microtime(true));
return $usec+$sec;
?>



コードをコピーしますコードは次のとおりです:

圧縮中国語の比較

原文: レイアウト 1 レイアウトとは、簡単に言うと要素のサイズや位置を設定することです。 Ext のレイアウト システムには、コンポーネント、レイアウト、コンテナが含まれます。コンテナは、コンポーネントのサイズと位置を管理できる特別なコンポーネントです。 コンテナーは doLayout を通じてレイアウトを再計算し、DOM を更新します。2 手動のレイアウトは不要で、フレームワークが自動的に処理します。
元のテキスト サイズ: 328 gzcompress 圧縮サイズ: 251 所要時間: 59.99994 ミリ秒
gzencode 圧縮サイズ: 263 所要時間: 120.00012 ミリ秒

gzdeflate 圧縮サイズ: 245 所要時間: 119.999 89ms

bzcompress 圧縮後のサイズ: 303 所要時間: 259.99999ms

圧縮された英語の数値の比較

原文:!@#$%^&*()QWERTYUIOPSDFGHJKL!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNMa!@#$%^&* ()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD:ZXCVBNM#!@#!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM-!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^& *()RTYUIOPD$%^&*()ERTYUIODFGHJ!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM]!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPDKLXCVBNM@#$ %^&*()RTYUIOPDFGHJKLCVBNMFGHJTYU%^&RFGHJ4d56g7h8ui7h8ujirqwerqh8

元のテキスト サイズ: 386

gzcompress 圧縮サイズ: 116 所要時間: 50.00019 ミリ秒

gzencode 圧縮サイズ: 128 時間消費: 99 .9999ms

gzdeflate 圧縮サイズ: 110 時間所要時間: 89.99991 ミリ秒

bzcompress 圧縮サイズ: 183 所要時間: 210.00004 ミリ秒



gzcompress が最も高速で、圧縮率が高いと結論付けることができます。

gzdeflate は最も高い圧縮率を持ち、gzcompress よりわずかに遅いです

gzencode は比較的 gzdeflate に近く、gzdeflate がわずかに有利です

bzcompress は最も遅い速度と最も遅い圧縮率を持っています。

そのため、gzcompress と gzdeflate を使用することをお勧めします。

http://www.bkjia.com/PHPjc/726023.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/726023.html技術記事 php が提供する文字列圧縮方法は次のとおりです。 1.gzcompress — 文字列を圧縮する この関数は、ZLIB データ形式を使用して指定された文字列を圧縮します。 2.gzencode — gzip 圧縮を作成します...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート