このサイトのトップページではTwitter APIを利用して、僕のタイムラインを表示しています(実際は、Twitter意外にもいろいろ混ぜて表示していますけどね)。
そんな難しくないし、さんざん既出だと思うけど、とりあえず自分用まとめ。
Twitter APIからXMLを取得
function get_twitter_api($feed){ $_ret = array(); $page = file_get_contents($feed); $rss = simplexml_load_string($page); foreach($rss->status as $value){ $value['myPage'] = 'http://twitter.com/'.$value->user->screen_name; // 日付を統一変数に $value['datetime'] = $value->created_at; // リンク、タイトル $value['link'] = 'http://twitter.com/'.$value->user->screen_name.'/statuses/'.$value->id; $_ret[] = $value; } return $_ret; }
上記でXMLが取得できます。上記では省いていますが、キャッシュ処理など適宜実装してください。
取得したXMLを出力
ここで、Twitter APIが返す本文はリンクが取れているので、リンクと@にはリンクが付くように加工します。
出力のフォーマットは適宜ご自身の都合に合わせて加工してください。
// テキスト加工 function twitter_text($str){ $str = preg_replace("/https?:\/\/[a-zA-Z0-9;\/?:@&=\+$,\-_\.!~*'\(\)%#]+/",'<a href="$0" rel="external">$0</a>',$str); $str = preg_replace("/@([A-Za-z0-9_]+)/",'<a href="http://twitter.com/$1" rel="external">@$1</a>$2',$str); return $str; } // XML取得 $feed = get_twitter_api('http://twitter.com/statuses/user_timeline/inc2734.xml'); // 出力用html生成、出力 foreach($feed as $item){ // 日付を加工 $date = date('M d,Y H:i:s',strtotime($item[datetime])); $_ret .= '<dl>'; $_ret .= '<dt><a href="'. $item['link'].'" rel="external">'.$date.'</a> <a href="'.$item['myPage'].'" rel="external">Twitter</a></dt>'; $twitterText = twitter_text($item->text); $_ret .= '<dd>'.$twitterText.'</dd>'; $_ret .= '</dl>'; } echo $_ret;
以上!