2008/02/23 14:13
Category : ちょっと気になる小ねた
CSSファイルをPHPで圧縮
すっごく寒いです。朝から、かなりきつい風が吹き荒れてる香川県高松市です。強風が吹くたびに、私が今いる、築90年の母屋が軋んでます。ガタガタと・・・。あ〜、なんか気持ちわる〜。
閑話休題。
え〜、今回も、またまたまた「CSS」に関するちょっとしたテクニックを紹介します。
閑話休題。
え〜、今回も、またまたまた「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が稼動するサーバーであれば、非常に簡単なカスタマイズだけで使用できますので、よしっ!と思う方、是非チャレンジしてみてください。
それでは、また。
例えば、膨大な行数になったその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]
Posted by bzbell さん | URL | 2008/02/23 21:22
[C2] 超、うれしぃ〜〜〜。
bzbellさん、コメントありがとうございます。
このブログに引っ越して、初めてのコメントです。
うれし〜〜〜。
>import しても問題ないみたいですね。
ほっ、そうなんですね。
い〜こと、聞きました。
>何が原因か分からなくって
意外と、
セミコロンを書くのを忘れてたぁ〜
なんて言う感じの記述ミスが多いんですよ、
私の場合・・・。
>ありがとうございまする
お役にたてて嬉しいかぎりでぇ〜す。
このブログに引っ越して、初めてのコメントです。
うれし〜〜〜。
>import しても問題ないみたいですね。
ほっ、そうなんですね。
い〜こと、聞きました。
>何が原因か分からなくって
意外と、
セミコロンを書くのを忘れてたぁ〜
なんて言う感じの記述ミスが多いんですよ、
私の場合・・・。
>ありがとうございまする
お役にたてて嬉しいかぎりでぇ〜す。
Posted by かわぐち さん | URL | 2008/02/24 08:49
Post a Comment
Recent Entries(最新のエントリー)
- 欠陥パソコンと知らずに半年以上も使ってた・・・ 05/082008:05:08:13:31:33
- 出張中です。 04/232008:04:23:15:57:49
- 今日の私の確率は?@確率占い 04/212008:04:21:14:25:20
- アビバノンノン 04/202008:04:20:20:06:56
- 私の脳内検索@脳内検索メーカー 04/182008:04:18:15:59:37
- 笑えるカレンダーを作成@カレンダーメーカー 04/172008:04:17:14:57:37
- 韓国で「キャプテン・ハーロック」が実写化?? 04/172008:04:17:10:20:25
- 僕の定位置は・・・ 04/162008:04:16:21:32:01
- よ〜く見かけるんです@コーギー 04/162008:04:16:20:25:11
- 牛乳をよく飲むと「前立腺がん」の危険が増える? 04/162008:04:16:20:22:46
- 現代のうば捨て山@後期高齢者医療制度 04/162008:04:16:20:15:10
- 馬食い家内が象サイズになった@変換ミスコンテスト 04/162008:04:16:14:58:07
- 興福寺の阿修羅像と正花寺の菩薩立像 04/162008:04:16:13:34:44
- ハリウッドで「攻殻機動隊」が実写化 04/162008:04:16:09:50:05
- 足を差し出すと、足をサシダス 04/152008:04:15:22:18:03
- 正規職員500人をリストラ@2010年の社保庁案 04/152008:04:15:21:46:04
- ひめせんのお土産 04/152008:04:15:15:52:55
- 「トリケラトプス」の骨格標本が、オークションに! 04/152008:04:15:13:26:02
- SEは辞退できるの?@裁判員制度 04/152008:04:15:10:45:15
- 「手書きメーカー」を使ってみる 04/152008:04:15:09:46:02
- 最近のお気に入り@つるたけ日記 04/142008:04:14:22:12:15
- 熊って、四国にいてんの!? 04/142008:04:14:13:04:20
- 我が家の巨匠の作品です。 04/132008:04:13:17:51:26
- これ、何の花か分かりますか〜? 04/122008:04:12:17:20:42
- やっぱ、お昼は「さぬきうどん」でしょ! 04/122008:04:12:14:27:58
- 欠陥パソコンと知らずに半年以上も使ってた・・・ 05/082008:05:08:13:31:33
- 出張中です。 04/232008:04:23:15:57:49
- 今日の私の確率は?@確率占い 04/212008:04:21:14:25:20
- アビバノンノン 04/202008:04:20:20:06:56
- 私の脳内検索@脳内検索メーカー 04/182008:04:18:15:59:37
- 笑えるカレンダーを作成@カレンダーメーカー 04/172008:04:17:14:57:37
- 韓国で「キャプテン・ハーロック」が実写化?? 04/172008:04:17:10:20:25
- 僕の定位置は・・・ 04/162008:04:16:21:32:01
- よ〜く見かけるんです@コーギー 04/162008:04:16:20:25:11
- 牛乳をよく飲むと「前立腺がん」の危険が増える? 04/162008:04:16:20:22:46
- 現代のうば捨て山@後期高齢者医療制度 04/162008:04:16:20:15:10
- 馬食い家内が象サイズになった@変換ミスコンテスト 04/162008:04:16:14:58:07
- 興福寺の阿修羅像と正花寺の菩薩立像 04/162008:04:16:13:34:44
- ハリウッドで「攻殻機動隊」が実写化 04/162008:04:16:09:50:05
- 足を差し出すと、足をサシダス 04/152008:04:15:22:18:03
- 正規職員500人をリストラ@2010年の社保庁案 04/152008:04:15:21:46:04
- ひめせんのお土産 04/152008:04:15:15:52:55
- 「トリケラトプス」の骨格標本が、オークションに! 04/152008:04:15:13:26:02
- SEは辞退できるの?@裁判員制度 04/152008:04:15:10:45:15
- 「手書きメーカー」を使ってみる 04/152008:04:15:09:46:02
- 最近のお気に入り@つるたけ日記 04/142008:04:14:22:12:15
- 熊って、四国にいてんの!? 04/142008:04:14:13:04:20
- 我が家の巨匠の作品です。 04/132008:04:13:17:51:26
- これ、何の花か分かりますか〜? 04/122008:04:12:17:20:42
- やっぱ、お昼は「さぬきうどん」でしょ! 04/122008:04:12:14:27:58

さっそく TRY してみましたの (●´∀`●)
import しても問題ないみたいですね。
以前、CSS の圧縮に TRY した時うまくいかなかったんですよ。
やり方が悪かったんだと思うんですけど、何が原因か分からなくって (; ̄∇ ̄A
ありがとうございまする (m;_ _)mペコ