使用PHP压缩CSS的三种方法

一个网站通常包含多个css文件。网站越复杂,这些css文件也会越庞大,对它们进行适当的压缩,可以节约不少带宽(在访问量巨大的时候尤为明显)。

下面介绍三种使用PHP压缩css的方法。

第一种方法:

修改css的文件名,比如把 v2op.css 改成 v2op.css.php。调用的方式如下:

<link rel="stylesheet" type="text/css" media="screen" href="/v2op.css.php"/>

然后修改此v2op.css.php,在文件开头加上
<?php
if(extension_loaded('zlib')){ob_start('ob_gzhandler');}
header("Content-type: text/css");
?>

在文件最后面加上
<?php if(extension_loaded('zlib')){ob_end_flush();}?>

第二种方法:

同样是先修改css的文件名,把v2op.css 修改为 v2op.css.php。

然后在文件开头处加上下面这段代码(注意文件的编码,这里是utf-8,根据你自己的需要修改)
<?php
   ob_start ("ob_gzhandler");
   header ("content-type: text/css; charset: UTF-8");
   header ("cache-control: must-revalidate");
   $offset = 60 * 60;
   $expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
   header ($expire);
?>

第三种方法:

新建一个php文件,例如 v2op.css.php,然后include进来你的css文件,复制如下代码

<?php
  header('Content-type: text/css');
  ob_start("compress");
  function compress($buffer) {
    /* remove comments */
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    /* remove tabs, spaces, newlines, etc. */
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
  }

  /* 此处修改为你自己的css路径 */
  include('v2op.css');

  ob_end_flush();
?>

我个人更喜欢这种方式 :) 

当然,如果您嫌麻烦,也可以使用现成的工具去优化css,比如 csstidy

无觅相关文章插件,快速提升流量

This entry was posted in css and tagged , , . Bookmark the permalink.

4 Responses to 使用PHP压缩CSS的三种方法

  1. 小秦 says:

    第三种方法有负作用。。
    因为你把Tab,空格。。都替换没了。。。会造成有些东西不能用。。
    比如英文的字体名。有的字体名中间有空格。

    再比如 border: 1px solid #F00;
    如果把空格替换没了。。那就成 border:1pxsolid#F00; 这很显然是错误的嘛。

  2. AmirFish says:

    :) 你试用一下就知道了。

    font-family: Verdana, “Lucida Grande”, “Lucida Sans”, sans, Hei;
    border:1px solid #ccc;

    这样的情况输出之后还是会保持这样。

  3. fotree says:

    为什么都要以php文件去调用?

  4. AmirFish says:

    为了压缩,去除空格等等
    其实这个过程还可以进行更多的操作

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">