分享一段高效的css gzip压缩代码

时间:2007-05-18 14:44:03      类别:PHP, Wordpress      本文链接:生活点滴Enjoy Life

打算让用户控制缓存,但是必须得保证用户关闭浏览器后代码还能继续执行,所以一直在研究register_shutdown_function,也一直在调试这个代码和ob_start绑定函数执行的顺序,后来就在php.net上发现了一段压缩css的好代码,我7k的css被压缩成2k不到,大家可以尝试。

  1. < ?php
  2.   ob_start("ob_gzhandler");
  3.   ob_start("compress");
  4.   header("Content-type: text/css; charset: UTF-8");
  5.   header("Cache-Control: must-revalidate");
  6.   $off = 0; # Set to a reaonable value later, say 3600 (1 hr);
  7.   $exp = "Expires: " . gmdate("D, d M Y H:i:s", time() + $off) . " GMT";
  8.   header($exp);
  9.  
  10.   function compress($buffer) {
  11.   $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); // remove comments
  12.   $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); // remove tabs, spaces, newlines, etc.
  13.   $buffer = str_replace('{ ', '{', $buffer); // remove unnecessary spaces.
  14.   $buffer = str_replace(' }', '}', $buffer);
  15.   $buffer = str_replace('; ', ';', $buffer);
  16.   $buffer = str_replace(', ', ',', $buffer);
  17.   $buffer = str_replace(' {', '{', $buffer);
  18.   $buffer = str_replace('} ', '}', $buffer);
  19.   $buffer = str_replace(': ', ':', $buffer);
  20.   $buffer = str_replace(' ,', ',', $buffer);
  21.   $buffer = str_replace(' ;', ';', $buffer);
  22.   return $buffer;
  23.   }
  24.  
  25.   require_once('style.css');
  26.  
  27.   ?>

将上面的文件命名为style.css.php,放置到你当前模板目录下,然后修改你的wordpress模板中的header.php将css的路径改成<link rel="stylesheet"
href="<?php bloginfo('stylesheet_directory'); ?>/style.css.php"
type="text/css" media="screen" />

该日志未加标签
发表于 2007-05-18 14:44:03 目录:PHP, Wordpress [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
如果您喜欢本blog,欢迎你的feed订阅,谢谢你的支持

前5排已经被占据了 快抢好位置哦

  • 1楼 muzik 在 2007.05.19 11:03发表评论如下:

    哈哈哈哈哈 我一直在用 细节上有些不同

    我一般都使用预先准备好的css片段 常用的class一个文件 清除浏览器默认css定义一个文件 layout一个文件 常规定义一个文件 然后个别页面也有特殊定义 反正就是若干文件 实际使用的时候就用一个页面来按照当前页面的需要把它们载入 然后这么压一下…

    这样子作的坏处 就是在用户而言 每次访问页面时的exmaple.com/css是不一样的 每次都得重新载入 某种程度上 失掉了css的本意

  • 2楼 cosβ 在 2007.05.20 11:55发表评论如下:

    $off = 0; # Set to a reaonable value later, say 3600 (1 hr);
    $exp = “Expires: ” . gmdate(”D, d M Y H:i:s”, time() + $off) . ” GMT”;
    这里有设置时间,所以不会出现你说的每次都要载入的情况,浏览器会缓存的!

  • 3楼 muzik 在 2007.05.23 00:26发表评论如下:

    我说的不是你这里..

  • 4楼 cosβ 在 2007.05.23 08:25发表评论如下:

    了解

  • 5楼 wordpress提速方法-Yanwu博客 在 2007.07.16 22:50发表评论如下:

    [...] 参考这篇文章,在模板文件下建立style.css.php文件,copy这篇文章介绍的代码,然后把style.css.php中的“require_once(’style.css’);”改成 require_once(’style2.css’); [...]

  • 转到第
(Required)
(Required, not published)
如果留言未显示请不要重复留言,我将为你恢复!


生活点滴Enjoy Life is proudly powered by WordPress | admin| About Us | cosbeta| Bluehost| site map 1.064s & 25