zoukankan      html  css  js  c++  java
  • 提升数据库的效率方法之一--php压缩字符串,节省数据库的存储空间

      php 压缩字符串函数:gzcompress()

      php解压字符串函数:gzuncompress()

      效果图:

      代码:

    <?php
    
    $str = "司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”司马法曰:“国虽大,好战必亡;天下虽平,忘战必危。”";
     
    $stred = gzcompress($str);
    
    echo '<h2 style="color:red">原始字符串:</h2>';
    echo $str.'<br><hr>';
    
    echo '原始字符串的长度:'.strlen($str).'<br>';
    echo '编码后字符串的长度:'.strlen($stred).'<br>';
    
    $strBase64 = base64_encode($stred);
    echo '编码后base64又编码的字符串长度,此编码可以存入数据库內:'.strlen($strBase64).'<br>';
    echo '<h2 style="color:red">base64编码后的字符串:</h2>';
    echo $strBase64.'<br>';
    
    $deBase64 = base64_decode($strBase64);
    
    echo '<h2 style="color:red">解码的字符串:</h2>';
    echo gzuncompress($deBase64).'<br><hr>';
     
    $unstred = gzuncompress($stred);    
    echo '解码前的字符串长度:'.strlen($stred).'<br>';
    echo '解码后的字符串长度:'.strlen($unstred).'<br>';

       字符串实验时候的压缩率,实际情况要看字符串内容,以2500长度的字符串来计算:简体字是 5.3% ;繁体字的压缩效率是很低的,实验时压缩率在 40% 左右。越是重复的字符串,压缩效果越好,不重复的字符串压缩效果越差。以下是封装的函数:

    /**
        @param   bool     $isComp  true 为压缩字符串,false 为解压字符串
        @param   string   $str     要压缩/解压的字符串
        @return  string            压缩/解压缩的字符串
     */
    function strCompress($isComp, $str)
    {
        if($isComp)
             return base64_encode(gzcompress($str));
         else
             return gzuncompress(base64_decode($str));
    }
  • 相关阅读:
    C#中关于@的用法
    c++ 中__declspec 的用法
    #pragma详细解释(一)
    memmove 和 memcpy的区别
    【niubi-job——一个分布式的任务调度框架】----安装教程
    [异能程序员]第一章 酒后事发(第一更)
    博客园的最后一篇博文,还是要离开了(附带个人博客源码分享)
    五一假期——技术之路上的坎儿
    deerlet-redis-client添加集群支持,邀请各路大神和菜鸟加入。
    从日常开发说起,浅谈HTTP协议是做什么的。
  • 原文地址:https://www.cnblogs.com/qingsong/p/14131267.html
Copyright © 2011-2022 走看看