The string compression methods provided by php are
1.gzcompress — Compress a string
This function compress the given string using the ZLIB data format.
2.gzencode — Create a gzip compressed string
This function returns a compressed version of the input data compatible with the output of the gzip program
3.gzdeflate — Deflate a string
This function compress the given string using the DEFLATE data format.
4.bzcompress — Compresses a string into bzip2 encoded data
bzcompress() compresses the specified string and returns the data in bzip2 encoding.
The following is a compression comparison of these four methods to compress Chinese and English numbers respectively
Copy the code The code is as follows:
$str1 = 'Layout 1 introduces layout, which simply means setting the size and position of elements. Ext's layout system includes components, layouts, and containers. The container is a special component that can manage the size and position of components. The container recalculates the layout through doLayout and updates the DOM. 2 Manual layout is unnecessary, the framework will automatically handle it for you. ';
$str2 = '!@#$%^&*()QWERTYUIOPSDFGHJKL!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNMa!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$ %^&*()RTYUIOPD:ZXCVBNM#!@#!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM-!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD$% ^&*()ERTYUIODFGHJ!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM]!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPDKLXCVBNM@#$%^&*() RTYUIOPDFGHJKLCVBNMFGHJTYU%^& rfghj4d56g7h8ui7h8ujirqwerqh8 ';
echo' & lt; b & gt; compressed Chinese comparison & lt;/b & lt; br & gt; & lt; br & gt; ';
Compress_comp ($ STR1, 1000); // Compression Comparison of 1000 times and decompression 1000 times
echo 'Compressed English numbers comparison
';
compress_comp($str2, 1000); // Compare 1000 times of compression and 1000 times of decompression
/* Compression*/
function compress_comp($str, $num){
$func_compress = array('gzcompress', 'gzencode', 'gzdeflate', 'bzcompress');
echo 'Original text:'.$str.'
';
echo 'Original text size:'.strlen ($str).'
';
for($i=0,$length=count($func_compress); $i<$length; $i++){
$starttime = get_microtime();
for($j=0; $j<$num; $j++){
switch($func_compress[$i]){
case 'gzcompress ':
$mstr = gzcompress($str, 9); // Decompression method: gzuncompress
break;
case 'gzencode':
$mstr = gzencode($str, 9); / / Decompression method: gzdecode php>=5.4
break;
case 'gzdeflate':
$mstr = gzdeflate($str, 9); // Decompression method: gzinflate
break;
case 'bzcompress':
$mstr = bzcompress($str, 9); // Decompression method: bzdecompress
break;
}
}
$endtime = get_microtime();
echo $func_compress[$i].' Compressed size:'.strlen($mstr).' Time consuming:'.round(($endtime-$starttime)*1000,5).'ms
< br>';
}
}
/* Get microtime */
function get_microtime(){
list($usec, $sec) = explode(' ', microtime(true));
return $usec+$sec;
}
?>
Execution result:
Copy code The code is as follows:
Compressed Chinese comparison
Original text: Layout 1 Introducing layout, in simple terms, setting the size and position of elements. Ext's layout system includes components, layouts, and containers. The container is a special component that can manage the size and position of components. The container recalculates the layout through doLayout and updates the DOM. 2 Manual layout is unnecessary, the framework will automatically handle it for you.
Original text size: 328
gzcompress compressed size: 251 Time consuming: 59.99994ms
gzencode compressed size: 263 Time consuming: 120.00012ms
gzdeflate Compressed size: 245 Time consuming: 119.99989ms
bzcompress Compressed size: 303 Time consuming: 259.99999ms
Comparison of compressed English numbers
Original text:!@#$ %^&*()QWERTYUIOPSDFGHJKL!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNMa!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD:ZXCVBNM#!@#!@# $%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM-!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD$%^&*()ERTYUIODFGHJ!@#$%^&*() QWERTYUIOPSDFGHJKL:ZXCVBNM]!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPDKLXCVBNM@#$%^&*()RTYUIOPDFGHJKLCVBNMFGHJTYU%^&RFGHJ4d56g7h8ui7h8ujirqwerqh8
Original text size: 386
gzcompress Compressed size: 116 Time consuming: 50.00019ms
gzencode Compressed size: 128 Time consuming: 99.9999ms
gzdeflate Compressed size: 110 Time consuming: 89.99991ms
bzcompress Compressed size: 183 Time consumption: 210.00004ms
It can be concluded that
gzcompress is the fastest and has a higher compression ratio.
gzdeflate has the highest compression ratio and is slightly slower than gzcompress
gzencode is close to gzdeflate, gzdeflate has a slight advantage
bzcompress has the slowest speed and compression ratio.
It is therefore recommended to use gzcompress and gzdeflate.
http://www.bkjia.com/PHPjc/726023.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/726023.htmlTechArticleThe string compression methods provided by php are 1.gzcompress — Compress a string This function compress the given string using the ZLIB data format. 2.gzencode — Create a gzip compressed...