Loading...

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

2007-05-18 14:44:03 发表于PHP, Wordpress 本文链接: 分享一段高效的css gzip压缩代码

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

< ?php
  ob_start("ob_gzhandler");
  ob_start("compress");
  header("Content-type: text/css; charset: UTF-8");
  header("Cache-Control: must-revalidate");
  $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";
  header($exp); 

  function compress($buffer) {
  $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); // remove comments
  $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); // remove tabs, spaces, newlines, etc.
  $buffer = str_replace('{ ', '{', $buffer); // remove unnecessary spaces.
  $buffer = str_replace(' }', '}', $buffer);
  $buffer = str_replace('; ', ';', $buffer);
  $buffer = str_replace(', ', ',', $buffer);
  $buffer = str_replace(' {', '{', $buffer);
  $buffer = str_replace('} ', '}', $buffer);
  $buffer = str_replace(': ', ':', $buffer);
  $buffer = str_replace(' ,', ',', $buffer);
  $buffer = str_replace(' ;', ';', $buffer);
  return $buffer;
  } 

  require_once('style.css'); 

  ?>

将上面的文件命名为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

前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)
如果留言未显示请不要重复留言,我将为你恢复!