XML_RSSクラスでRSSデータを直接読み込めるみたい
マニュアル読むとコンストラクタの引数にはファイルポインタかファイル名しか設定できないみたい。
それだとレスポンスコードを参照すると、レスポンスボディを一度ファイルに保存するか、再度リクエストをかけるかしなきゃいけない。
出来れば取得したレスポンスボディからXML_RSSを生成出来たらいいなーと思ってソースを読んだら出来るっぽい。
記述はこんな感じ。
require_once( 'HTTP/Request.php' ); require_once( 'XML/RSS.php' ); //RSSの取得先 $url = 'http://****/rss.xml'; $request = new HTTP_Request($url); $request->sendRequest(); $code = $request->getResponseCode(); if( $code == 200 ){ $src = $request->getResponseBody(); }else if( $code == 301 || $code == 302 ){ //リダイレクトの時はリダイレクト先を設定 $src = $request->getResponseHeader('location'); }else{ $src = false; } if( $src ){ $rss = new XML_RSS($src); $rss->parse(); }
これでHTTP_RequestでRSSにリクエストかけてステータスコードを取得した後、レスポンスボディからXML_RSSを生成できる。
いちいちファイルに保存しなくても大丈夫!