【PHP】TwitterのストリーミングAPIを使う

TwitterのストリーミングAPIで得られるパブリックタイムラインの
内容は次がら次へとに更新されるため、『file_get_contents()
のようにファイルを一括して読み込む方法だと、いつまでたっても
読み込みが終わらず、次の処理へ進めません。


そこで、1行ずつ読み込む『fgets()』を、あらかじめ決めた回数だけ
くり返して、読み込む行数を制限することにしました。
幸い、ストリーミングAPIで得られるパブリックタイムラインは
1行が1件のツイートになっています。


$user = 'user_hoge';
$pass = 'fuga1234';
$url = "http://{$user}:{$pass}@stream.twitter.com/1/statuses/sample.json";
$file = fopen($url, 'r');

//1行ずつ読み込む処理を繰り返す
$statuses = array();
for($i=0; $i<200; $i++){
$statuses[] = json_decode(fgets($file), true);
}

if($statuses){
foreach($statuses as $status){
//$status['text'] <-- ツイートの内容
//$status['user']['screen_name'] <-- ユーザ名
}
}

上記の例では200件読み込んでいます。
1000件にしてみたら、かなり時間がかかってしまいました。
僕の場合はcronで1分ごとに上記の処理を実行するように
しているので、200ぐらいが適当かなと思いました。