Twitter API キャッシュバージョンのサンプル

出力結果へスクロール↓
<?php
// Cache_Liteのプログラムを読み込む
require_once 'Cache/Lite.php';
$dir = "/home/ユーザー名/caraldo.net/public_html/blog/sample/tmp";

if (!file_exists($dir)) {
	mkdir($dir, 0700); 
	echo "キャッシュ用のディレクトリを作成しました";   
}

// 設定項目
$cacheOptions = array (
'cacheDir' => './tmp/', // キャッシュが保存される場所
'lifeTime' => 3600, // 指定した秒数はキャッシュを使う、nullにすると無期限
);
$username = '66103531';
$url = "http://twitter.com/statuses/user_timeline.xml?id=" . $username . "&count=20";

$cacheId = $url;
//Cache_Liteオブジェクト生成
$objCache = new Cache_Lite($cacheOptions);
//指定したIDの有効なキャッシュデータがキャッシュディレクトリに存在するかどうかを返す。
if ($cache = $objCache->get($cacheId)) {
	 //キャッシュデータを変数にセット
  $xmlStr = $cache;
  echo "<strong>" . date("y/m/d h:i:s", $objCache->lastModified()) . "キャッシュから表示してるよ</strong><br />";

} else {
	// キャッシュがなかったとき、lifeTimeより古くなっているときはここで処理
	  $xmlStr = @file_get_contents($url);
	  //キャッシュ保存
	 $objCache->save($xmlStr,$cacheId);
	 echo "<strong>API叩いたよ</strong><br />";
}
//simplexml_load_fileから取得の仕方に応じて変更
$rss = simplexml_load_string($xmlStr);
//以下は前回と一緒
//まずは発言を表示する前に、アイコンとプロフィールを表示します。
echo "<img src=\"" . $rss->status->user->profile_image_url . "\">";
echo $rss->status->user->description;

foreach ($rss->status as $i) {//配列$rss->status as 変数名$i
	//色々textをいじくりまわすのでとりあえず変数に代入して扱いやすくしてみます
	$val = $i->text;
	//文字列内のURLにリンクを貼る - phpspot
	//http://phpspot.net/php/pg%95%B6%8E%9A%97%F1%93%E0%82%CC%82t%82q%82k%82%C9%83%8A%83%93%83N%82%F0%93%5C%82%E9.html
	$val = ereg_replace("(http)(://[[:alnum:]\S\$\+\?\.-=_%,:@!#~*/&]+)","<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$val);
	//@で始まるユーザー名もリンクに
	$val = ereg_replace("(@)([[:alnum:]\S\$\+\?\.-=_%,:@!#~*/&]+)","<a href=\"http://twitter.com/\\2\" target=\"_blank\">\\1\\2</a>",$val);
	//twitpicだったらサムネイルに
	$val = ereg_replace("(>)(http://twitpic.com/)([[:alnum:]\S\$\+\?\.-=_%,:@!#~*/&]+)(</a>)","><img src=\"http://twitpic.com/show/mini/\\3\" /></a>",$val);
	echo "<p>" . $val . "<br />";
	echo "<a href=\"http://twitter.com/" . $i->user->screen_name . "/status/" . $i->id ."\">";
	echo date( "Y年m月d日H時i分", strtotime( $i->created_at ) );
	echo "</a>";
	echo  "</p>";
}
?>

出力結果

API叩いたよ
Webディレクター的な事やってます!iPhone楽しくて仕方ない!マラソン・ロードバイクで肉体改造計画中!そういやフットサルもやってました、でも一番好きなのは漫画です㌰㌰⋋( 'Θ')⋌㌰㌰

風邪やばい。でも出社しなければ(ーー;) 早く終わらせて帰ろう。
2010年07月31日10時40分

@ongaq 明日は日曜日だっけ?
2010年07月29日00時09分

8時に成田に帰れるはずだったけど、香港で雷やばくてこの時間になってしまった。ただ到着が羽田空港になったのはラッキーだったw
2010年07月29日00時06分

やっと帰ってこれた〜 (@ 羽田空港 国際線ターミナル) http://4sq.com/9Xj14u
2010年07月29日00時03分

@sayoyo344 ありがとうございます、やっとネット環境が整いました!お仕事なうですw気持フワフワしてますけど
2010年07月26日15時24分

もうちょいで搭乗
2010年07月24日17時55分

@sayoyo344 出張です、一日観光しますけど! 香港行って来ます
2010年07月24日17時55分

I'm at 成田空港第二ターミナル. http://4sq.com/9ECoGk
2010年07月24日16時20分

成田まで36分で! (@ 日暮里・舎人ライナー 日暮里駅) http://4sq.com/dcksch
2010年07月24日14時59分

ヤマトの兄ちゃんが車内で、おわんねーや、もう!って叫んでたw
2010年07月23日17時35分

クッ RT “@daybreak_dawn: はっ RT @runeharst: 「あつい」という言葉を言ってはならない。 「ああ、ついでに・・・」 というこの流れを知っているヤツはすでに私のテリトリー内だ。”
2010年07月23日16時30分

アプリの拝金買った! 1000円なんだけど、払った実感が無い辺りが面白い
2010年07月23日11時45分

天然サウナだな、外にいるだけで痩せるだろ、これ
2010年07月23日09時48分

I'm at JR北与野駅 (さいたま市中央区上落合二丁目3-1, さいたま市中央区). http://4sq.com/9RTGCu
2010年07月22日22時40分

@poooooon 今メールでSorry for the bad news, but Masao has just ousted you as mayor of 七里駅! って来たんだけどmayorって美味しいの?
2010年07月22日15時07分

【レビュー】USTREAM 世界を変えるネット生中継 (ソフトバンク新書) http://bit.ly/aIxABE
2010年07月21日23時19分

スカイライナー予約した! 在来線最速だと
2010年07月21日12時59分

会社着いたけど風呂入りたい。出勤だけで汗だく
2010年07月21日09時58分