Emlog 无插件实现网站源码压缩

  • A+
所属分类:Emlog SEO优化

在以往的 Emlog 优化教程中,相信都是使用的代码压缩插件,今天主要是分享插件的代码版本,也就是不使用插件,直接将代码丢在 module.php 中就可以,好吧,又消灭一个插件!

以下代码加入 module.php 里面的,

  1. function em_compress_html_main($buffer){
  2.     $initial=strlen($buffer);
  3.     $buffer=explode("<!--em-compress-html-->"$buffer);
  4.     $count=count ($buffer);
  5.     for ($i = 0; $i <= $count$i++){
  6.         if (stristr($buffer[$i], '<!--em-compress-html no compression-->')){
  7.             $buffer[$i]=(str_replace("<!--em-compress-html no compression-->"" "$buffer[$i]));
  8.         }else{
  9.             $buffer[$i]=(str_replace("\t"" "$buffer[$i]));
  10.             $buffer[$i]=(str_replace("\n\n""\n"$buffer[$i]));
  11.             $buffer[$i]=(str_replace("\n"""$buffer[$i]));
  12.             $buffer[$i]=(str_replace("\r"""$buffer[$i]));
  13.             while (stristr($buffer[$i], '  '))
  14.             {
  15.             $buffer[$i]=(str_replace("  "" "$buffer[$i]));
  16.             }
  17.         }
  18.         $buffer_out.=$buffer[$i];
  19.     }
  20.     $final=strlen($buffer_out);
  21.     $savings=($initial-$final)/$initial*100;
  22.     $savings=round($savings, 2);
  23.     $buffer_out.="\n<!--压缩前的大小: $initial bytes; 压缩后的大小: $final bytes; 节约:$savings% -->";
  24.     return $buffer_out;
  25. }

以下代码加在 footer.php 最末尾(即</html>结尾处)

  1. <?php
  2. if(_g('compress_html')=='open'){
  3.         $html=ob_get_contents();
  4.         ob_get_clean();
  5.         echo em_compress_html_main($html);
  6. }
  7. ?>

效果图:

Emlog 无插件实现网站源码压缩

以上的代码有一个模板设置判断语句,其代码为以下:

  1. 'compress_html' => array(
  2.         'type' => 'radio',
  3.         'name' => '网站源码压缩',
  4.         'description' => '',
  5.         'values' => array('open' => '压缩','close' => '关闭'),
  6.         'default' => 'open'
  7.     ),

Emlog 无插件实现网站源码压缩

想要内容里面的 pre 不被压缩可使用以下函数:

  1. function unCompress($content){
  2.     if(preg_match_all('/(crayon-|<\/pre>)/i', $content$matches)) {
  3.         $content = '<!--em-compress-html--><!--em-compress-html no compression-->'.$content;
  4.         $content.= '<!--em-compress-html no compression--><!--em-compress-html-->';
  5.     }
  6.     return $content;
  7. }

然后在 echo_log.php、page.php 文件中的$log_content 用下面代码替换

  1. unCompress($log_content)

 

历史上的今天:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: