twitterの自分のTL表示をbakeしてみる

本当、今更だよねw
結構簡単にできる(何せAPIがある)から、やってみるお。

とりあえず人がやってるのを試してみる

PHPとTwitterAPIを利用して、自分のタイムラインを表示してみる@デザイナー
http://blog.caraldo.net/2010/02/phptwitterapi.php

ふむふむ。twitterAPIからxmlを取得して、それをパースして流すだけっと。
いけそう♪いけそう♪そーれ、ぽちっとな。

Warning: simplexml_load_file() [function.simplexml-load-file]: http:// wrapper is disabled in the server configuration

エラーでますけども?
なに?サーバーの設定で、wrapperが無効になってる? wrapper=ラッパ??

simplexml_load_file()のallow_url_fopen設定を考える

ぐぐってみると、php.iniのallow_url_fopenの設定がoffになってるからとのこと。
php.iniの設定のallow_url_fopenをonにすることで解決するっぽいけど、
onにすることはかなり危険(非推奨)ってことで、別の方法を考えないと行けないのね。

「allow_url_fopen=Off」の環境にて
http://apisample.com/news/allowurlfopen.html

ふむふむ。それは危険だね。
ということで、simplexml_load_file()を使わない方法をっと。

PHPRSSを読み込む方法
http://hiroyukiterada.com/php/362/

みんなハマる場所は一緒だよね。(わかるわかる。
さーて、こんどこそ。ぽちっとな。

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in...

・・・おーい。(泣
なんか時間の取得の設定がうまくいってないっぽい内容。

日時系関数(strtotimeとか)使用時のwarning

date関数で”Asia/Tokyo・・”なんかのエラーが出る件:PHP5.1.0以降
http://www.res-system.com/weblog/item/563

ふーむ。
php.iniの設定でデフォルトで結構動くと思ってたけど、色々変更しないとなのね。

★注意★
php.iniにdate.timezone = 'Asia/Tokyo' って設定して、apache再起動しても動かないよ〜。
「Asia/Tokyo」のところをダブルクォートで囲まないと、設定が反映されないことがあるそうです!
1時間くらいハマったのは内緒です

そろそろ焼けたんじゃね?


<?php
function curl_get_contents( $url, $timeout = 60 ){
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
$result = curl_exec( $ch );
curl_close( $ch );
return $result;
}

$username = 'The_SunnySideup';
$url = "http://twitter.com/statuses/user_timeline.xml?id=" . $username . "&count=10";

$result = curl_get_contents( $url, 120 );
$rss = simplexml_load_string($result);

echo "<img src=\"" . $rss->status->user->profile_image_url . "\">";
echo $rss->status->user->description." by ".$rss->status->user->screen_name;

foreach ($rss->status as $i) {
$val = $i->text;
$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);
$val = ereg_replace("(>)(http://twitpic.com/)([[:alnum:]\S\$\+\?\.-=_%,:@!#~*/&]+)(</a>)","><img src=\"http://twitpic.com/show/mini/\\3\" /></a>",$val);
echo "<p>★" . $val . "<br />";
echo date( "Y/m/d H:i", strtotime( $i->created_at ) );
echo "</p>";
}

?>

usernameに自分のtwitterIDと差し替えれば見れますね。
じゃーん!

美味しくいただきました。
デザイン全く入ってないので、とてもcheapですが。

格言的な

勉強するから、何をしたいか分かる。勉強しないから、何をしたいか分からない。