前の記事 «:Firefoxのクールなテーマ集、23種
次の記事 »:インストール済みフォントを一覧・コピー「fonfon」v1.2

PHPでCSSを圧縮して出力する方法

2007年03月01日

スポンサード リンク
Compress CSS code
When you develop a website you know that you will always have to keep a balance between design and productivity. You need good working pages, easy layout, easy navigation, impressive design etc.

PHPでCSSを圧縮して出力する方法。
ブラウザがCSSを解釈するにあたって不要な、コメントや、タブ/スペース、改行なんかを取り除いたものを出力してくれるサンプルが掲載されていました。

圧縮することで、ブラウザがCSSファイルを解釈するバイト数が減り、微少ですが解釈の高速化と、ネットワーク的負荷の低減が期待できますね。

次のサンプルコードでそれが可能です。
CSSファイルの最初に次のPHPコードを挿入します。

<?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("rn", "r", "n", "t", ' ', ' ', ' '), '', $buffer);
    return $buffer;
}
?>

そして、最後に、次のコードで出力を行います。
CSSファイルの最後に次のコードを入れます。

<?php ob_end_flush();?>

注意として、CSSファイルをPHPファイルとして動作させるようにする必要があります。
<link rel="stylesheet" href="xxx.php"> のようにして直接PHPを指定するのもよいでしょう。

関数自体を流用して、CSS圧縮サービスなんかも作れそうですね。

スポンサード リンク

投稿者 KJ : 2007年03月01日 10:06 | ブックマークに追加する Subscribe with livedoor Reader
間違いの指摘をしていただける方はメールでお願いします


本を執筆しました。