<< HTMLのパース | main | 日本語形態素解析(YWS) >>

2007.06.15 Friday

キャッシュ処理を簡単に

PHPでWebAPIを使って、いろんなプログラムを作っていると、知らず知らずのうちに、検索エンジンが暴れまくって、一日の転送量が1ギガを越えてしまうことになってしまいます。
このため、キャッシュ処理を入れて、少しでもサーバー負荷を軽くした方がよいのですが、そんなときは、その処理をサブルーチンかしておくと楽にコーディングできます。

--
--

サンプルソース
function cache_file_get_contents($url)
{
require_once "Cache/Lite.php";

$cache_dir = '/tmp/';
$id = 'cache_';
$id .= urlencode($url);

$options = array(
'cacheDir' => $cache_dir,
'caching' => true,
'lifeTime' => 36000,
);
$Cache_Lite = new Cache_Lite($options);
if ($data = $Cache_Lite->get($id)) {
;
} else { // No valid cache found (you have to make the page)
// キャッシュがないときの処理
$data = file_get_contents( $url );
if( $data ) {
$data = mb_convert_encoding($data,'UTF-8','auto');
$Cache_Lite->save($data);
}
}

return( $data );

}


file_get_contents()を呼ぶ代わりに、この
cache_file_get_contents()を呼ぶことで、自動的にキャッシュされるようになります。
もちろん、PERAのCache_Liteが必要なので、あらかじめインストールしておく必要はあります。
また、保存時にUTF-8に文字コード変換しているので、再利用時に文字コードを気にする必要がないのも、ポイントです。

cache_dir,id,lifeTimeなど
各種変数を自分の環境に合わせれば、そのまま使えますので、お試しを。

--

テクノラティお気に入りに追加する

Comments

コメント入力は停止しています

海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。

Trackback URL

トラックバックする場合は、
トラックバック元の記事にこのエントリへのリンクを記載してください
このエントリのタイトル「キャッシュ処理を簡単に」
このエントリのリンク「http://kommy.s254.xrea.com/blog/log/eid33.html」