Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleich zwischen PHP-String-Komprimierungsmethoden

Vergleich zwischen PHP-String-Komprimierungsmethoden

jacklove
jackloveOriginal
2018-06-09 14:14:392096Durchsuche

Die von PHP bereitgestellten String-Komprimierungsmethoden sind

1.gzcompress – Komprimieren Sie einen String

Diese Funktion komprimiert die angegebene Zeichenfolge mithilfe des ZLIB-Datenformats

2.gzencode – Erstellen Sie ein gzip komprimierte Zeichenfolge

Diese Funktion gibt eine komprimierte Version der Eingabedaten zurück, die mit der Ausgabe des gzip-Programms kompatibel ist

3.gzdeflate – Eine Zeichenfolge entleeren

Diese Funktion komprimiert die angegebene Zeichenfolge mithilfe des DEFLATE-Datenformats.

4 .bzcompress – komprimiert eine Zeichenfolge in bzip2-kodierte Daten

bzcompress() komprimiert die angegebene Zeichenfolge und gibt sie in bzip2-kodierte Daten zurück.

Das Folgende ist ein Komprimierungsvergleich dieser vier Methoden zum Komprimieren chinesischer bzw. englischer Zahlen

<?php
$str1 = &#39;布局 1 介绍 布局,简单来说就是设置元素的大小和位置。 Ext 的布局系统包括组件,布局,容器,容器是一种特殊的组件,可以管理组件的大小和位置。 容器是通过 doLayout 来重新计算布局,并更新 DOM. 2 手工布局是不必要的,框架会为你自动处理。&#39;;
$str2 = &#39;!@#$%^&*()QWERTYUIOPSDFGHJKL!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNMa!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD:ZXCVBNM#!@#!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM-!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD$%^&*()ERTYUIODFGHJ!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM]!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPDKLXCVBNM@#$%^&*()RTYUIOPDFGHJKLCVBNMFGHJTYU%^&RFGHJ4d56g7h8ui7h8ujirqwerqh8&#39;;
echo &#39;<b>压缩中文比较</b><br><br>&#39;;
compress_comp($str1, 1000); // 压缩1000次 与 解压缩1000次比较
echo &#39;<b>压缩英文数字比较</b><br><br>&#39;;
compress_comp($str2, 1000); // 压缩1000次 与 解压缩1000次比较
/* 压缩 */
function compress_comp($str, $num){
	$func_compress = array(&#39;gzcompress&#39;, &#39;gzencode&#39;, &#39;gzdeflate&#39;, &#39;bzcompress&#39;);
	echo &#39;原文:&#39;.$str.&#39;<br><br>&#39;;
	echo &#39;原文大小:&#39;.strlen($str).&#39;<br><br>&#39;;
	for($i=0,$length=count($func_compress); $i<$length; $i++){
		$starttime = get_microtime();
		for($j=0; $j<$num; $j++){
			switch($func_compress[$i]){
				case &#39;gzcompress&#39;:
					$mstr = gzcompress($str, 9); // 解压方法:gzuncompress
					break;
				case &#39;gzencode&#39;:
					$mstr = gzencode($str, 9); // 解压方法:gzdecode php>=5.4
					break;
				case &#39;gzdeflate&#39;:
					$mstr = gzdeflate($str, 9); // 解压方法:gzinflate
					break;
				case &#39;bzcompress&#39;:
					$mstr = bzcompress($str, 9); // 解压方法:bzdecompress
					break;			
			}
		}
		$endtime = get_microtime();
		echo $func_compress[$i].&#39; 压缩后大小:&#39;.strlen($mstr).&#39; 耗时:&#39;.round(($endtime-$starttime)*1000,5).&#39;ms<br><br>&#39;;
	}
}
/* 获取 microtime */
function get_microtime(){
	list($usec, $sec) = explode(&#39; &#39;, microtime(true));
	return $usec+$sec;
}
?>

Ausführungsergebnisse:

压缩中文比较
原文:布局 1 介绍 布局,简单来说就是设置元素的大小和位置。 Ext 的布局系统包括组件,布局,容器,容器是一种特殊的组件,可以管理组件的大小和位置。 容器是通过 doLayout 来重新计算布局,并更新 DOM. 2 手工布局是不必要的,框架会为你自动处理。
原文大小:328
gzcompress 压缩后大小:251 耗时:59.99994ms
gzencode 压缩后大小:263 耗时:120.00012ms
gzdeflate 压缩后大小:245 耗时:119.99989ms
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.00019ms
gzencode 压缩后大小:128 耗时:99.9999ms
gzdeflate 压缩后大小:110 耗时:89.99991ms
bzcompress 压缩后大小:183 耗时:210.00004ms

Es kann geschlossen werden, dass

gzcompress die schnellste Geschwindigkeit und Komprimierung aufweist Verhältnis höher.

gzdeflate hat die höchste Komprimierungsrate und ist etwas langsamer als gzcompress

gzencode Vergleichen Sie mit gzdeflate Close, gzdeflate hat einen leichten Vorteil

bzcompress hat die langsamste Geschwindigkeit und das langsamste Komprimierungsverhältnis.

Daher wird empfohlen, gzcompress und gzdeflate zu verwenden.

In diesem Artikel wird der Vergleich der PHP-String-Komprimierungsmethoden erläutert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Verwandte Einführung in den PHP-Timer-Seiten-Laufzeitüberwachungskurs

Einführung in die Methode des PHP-Konstruktors, der eine unterschiedliche Anzahl von Parametern unterstützt

Wie man PDO verwendet, um MySQL abzufragen Vermeiden Sie die SQL-Injection-Methode

Das obige ist der detaillierte Inhalt vonVergleich zwischen PHP-String-Komprimierungsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn