您当前的位置: 首页 > 网站编程 > PHP教程 > php字符串压缩方法比较示例

php字符串压缩方法比较示例

作者:不详 来源:网络 发布时间: 2014-08-07 18:23 点击:
php 提供的字符串压缩方法有很多,下面为大家比较下php字符串压缩方法,感兴趣的朋友可以参考下 php 提供的字符串压缩方法有 1.gzcompress Compress a string This function compress the given string using the ZLIB data format. 2.gzencode Create a gzip compress

php字符串压缩方法比较示例

  php 提供的字符串压缩方法有很多,下面为大家比较下php字符串压缩方法,感兴趣的朋友可以参考下

  php 提供的字符串压缩方法有

  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 — 把一个字符串压缩成 bzip2 编码数据

  bzcompress() 压缩了指定的字符串并以 bzip2 编码返回数据。

  下面对这四种方法进行压缩比较,分别进行中文和英文数字的压缩

  复制代码 代码如下:

  <?php

  $str1 = '布局 1 介绍 布局,简单来说就是设置元素的大小和位置。 Ext 的布局系统包括组件,布局,容器,容器是一种特殊的组件,可以管理组件的大小和位置。 容器是通过 doLayout 来重新计算布局,并更新 DOM. 2 手工布局是不必要的,框架会为你自动处理。';

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

  echo '<b>压缩中文比较</b><br><br>';

  compress_comp($str1, 1000); // 压缩1000次 与 解压缩1000次比较

  echo '<b>压缩英文数字比较</b><br><br>';

  compress_comp($str2, 1000); // 压缩1000次 与 解压缩1000次比较

  /* 压缩 */

  function compress_comp($str, $num){

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

  echo '原文:'.$str.'<br><br>';

  echo '原文大小:'.strlen($str).'<br><br>';

  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); // 解压方法:gzuncompress

  break;

  case 'gzencode':

  $mstr = gzencode($str, 9); // 解压方法:gzdecode php>=5.4

  break;

  case 'gzdeflate':

  $mstr = gzdeflate($str, 9); // 解压方法:gzinflate

  break;

  case 'bzcompress':

  $mstr = bzcompress($str, 9); // 解压方法:bzdecompress

  break;

  }

  }

  $endtime = get_microtime();

  echo $func_compress[$i].' 压缩后大小:'.strlen($mstr).' 耗时:'.round(($endtime-$starttime)*1000,5).'ms<br><br>';

  }

  }

  /* 获取 microtime */

  function get_microtime(){

  list($usec, $sec) = explode(' ', microtime(true));

  return $usec+$sec;

  }

  ?>

  执行结果:

  复制代码 代码如下:

  压缩中文比较

  原文:布局 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

  可以得出

  gzcompress 速度最快,压缩比率较高。

  gzdeflate 压缩比率最高,速度稍慢于gzcompress

  gzencode 与 gzdeflate 比较接近,gzdeflate稍有优势

  bzcompress 速度最慢,压缩比率最慢。

  因此建议使用 gzcompress 和 gzdeflate。
分享到:
本文"php字符串压缩方法比较示例"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4