Category : ちょっと気になる小ねた

Tags :  ネタ  CSS  PHP  gzip  圧縮 

CSSファイルをPHPで圧縮

っごく寒いです。朝から、かなりきつい風が吹き荒れてる香川県高松市です。強風が吹くたびに、私が今いる、築90年の母屋が軋んでます。ガタガタと・・・。あ〜、なんか気持ちわる〜。

閑話休題。
え〜、今回も、またまたまた「CSS」に関するちょっとしたテクニックを紹介します。
CSSファイルに複雑なレイアウトやハックなんかを、どんどこどんどこと追加記述してると、いつの間にやら200行・300行って膨大な行数になった経験はありませんか?私はよくあります・・・。

例えば、膨大な行数になったそのCSSファイルの容量を10KBとしましょうか。とあるページを読み込んだ際に、そのCSSファイル分の10KBが加算されるわけです。
所詮CSSの記述なんてもんは、キャッシュの設定を施してやれば、毎回毎回読み込まなくてもいいモンが殆どです。それなのに、毎回10KB(例えばですよ、例えば)が加算される。負担になるのは明確ですよね。

んじゃ、どうすればいいの?ってことになりますよねぇ〜。はい、そろそろ本エントリーのメインはこっからです。

一番、手っ取り早い方法として「PHP」を使用する方法をご紹介します。
要は「PHP」を使って「CSS」を圧縮してブラウザ側に転送し、ブラウザ側が読み込んだ際にCSSフォーマットとして展開する方法です。
注意事項として、当然「PHP」を使用しますので、「PHP」が使用可能なサーバーでないと使えませんよ。

んでは、どうするのかを説明します。やり方はいたってシンプル。

CSSファイルの名前を「main.css」と仮定してお話します。まず、そのファイル名を「main.php」に変更します。次に、その「main.php」をエディターなんかで開いて、下記に記載するコードを先頭に追加し、上書き保存します。

<?php
    ob_start ("ob_gzhandler");
    header("Content-type: text/css");
    header("Cache-Control: must-revalidate");
    $offset = 60 * 60;
    $ExpStr = "Expires: " . 
    gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
    header($ExpStr);
?>


後は、この「main.php」をFTP等でサーバーにアップロードし、合わせてCSSファイルを読み込んでる記述も変更してやればOKです(下記参照)。ねっ、簡単でしょ。

<link rel="stylesheet" type="text/css" href="./main.css" />
↓↓↓↓
<link rel="stylesheet" type="text/css" href="./main.php" />


上記のPHPソースですが、「ob_gzhandler」を使ってファイル内容をgzipで圧縮し、展開時にCSSフォーマットに戻しています。加えて、キャッシュを1時間保持するようにもなってますので、毎回スクリプトが走る〜ってことがありません。いや〜、いたれりつくせり。ありがたや〜、ありがたや〜です。

PHPが稼動するサーバーであれば、非常に簡単なカスタマイズだけで使用できますので、よしっ!と思う方、是非チャレンジしてみてください。

それでは、また。

ランキングにご協力くださ〜い。


Comments : 2  | Trackbacks : 0

http://kslabo.blog110.fc2.com/tb.php/237-508cef5b

Trackbacks

Comments

[C1

こんばんわ^^

さっそく TRY してみましたの (●´∀`●)
import しても問題ないみたいですね。

以前、CSS の圧縮に TRY した時うまくいかなかったんですよ。
やり方が悪かったんだと思うんですけど、何が原因か分からなくって (; ̄∇ ̄A

ありがとうございまする (m;_ _)mペコ
Posted by bzbell さん | URL | 2008/02/23 21:22

[C2] 超、うれしぃ〜〜〜。

bzbellさん、コメントありがとうございます。
このブログに引っ越して、初めてのコメントです。
うれし〜〜〜。

>import しても問題ないみたいですね。
ほっ、そうなんですね。
い〜こと、聞きました。

>何が原因か分からなくって
意外と、
セミコロンを書くのを忘れてたぁ〜
なんて言う感じの記述ミスが多いんですよ、
私の場合・・・。

>ありがとうございまする
お役にたてて嬉しいかぎりでぇ〜す。
Posted by かわぐち さん | URL | 2008/02/24 08:49

Post a Comment

投稿した内容は管理者にだけ閲覧可能となります。

Recent Entries(最新のエントリー)

Recent Entries(最新のエントリー)

Search this site(サイト内検索)

Calender(カレンダー)

<< 04 | 2008/05 | 06 >>
Sun Mon Tue Wed Thu Fri Sat
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Monthly Archives(月別 アーカイブ)

Feed

Profile(プロフィール)

川口 亨

コンピューターとガンダムをこよなく愛す、香川県高松市在住の37歳の男性でございます。以後、お見知りおきを。

track feed