
PHP 5 では、file_get_contents() 関数と、simplexml_load_string() 関数、と SimpleXMLElement オブジェクト の 3つを使うだけで、
- RSS を取得(file_get_contents() 関数)して
- 取得した RSS(XML)をパース(simplexml_load_string() 関数)して
- パースした XML のデータを表示(SimpleXMLElement オブジェクト)する
ということが簡単に出来るようなので、ちょっと試してみました。
RSS を取得する
まずは、RSS 自体を取得します。file_get_contents() の引数に取得したい RSS の URL を指定すれば、RSS フィードのデータ(XML)が取得できます。
$url = “http://rss.dailynews.yahoo.co.jp/fc/rss.xml”;
$rss = file_get_contents($url);
参考URL:PHP: file_get_contents – Manual
これで、$rss に RSS が取得できました。
取得した RSS(XML)をパースする
っで、取得した XML($rss)をパースする訳ですが、simplexml_load_string() に XML を渡すだけです。
こんな感じ。
$xml = simplexml_load_string($rss);
参考URL:PHP: simplexml_load_string – Manual
そうすると、$xml に SimpleXMLElement オブジェクトが返されますので、あとは SimpleXMLElement のオブジェクトから必要な情報を取得して表示するだけです。
SimpleXMLElement オブジェクトから要素の取り出し方
例えば、取得した XML 文書が以下の場合、
<?xml version=’1.0′?>
<rss>
<item>
<title>タイトル1</title>
<image width=”100″ height=”260″>イメージ1</image>
<description>説明1</description>
<is:date>日付1</is:date>
</item>
<item>
<title>タイトル2</title>
<image width=”100″ height=”260″>イメージ2</image>
<description>説明2</description>
<is:date>日付2</is:date>
</item>
</rss>
通常に子要素を取り出す場合は、
$items = $xml->item;
foreach($items as $item) {
$title = $item->title;
$image = $item->image;
$desc = $item->description
}
属性を取り出す場合、
$items = $xml->item;
foreach($items as $item) {
$width = $item->image[‘width’];
$height = $item->image[‘height’];
}
名前空間がついている要素を取り出す場合、
$items = $xml->item;
foreach($items as $item) {
$date = $item->children(“is”, true)->date;
}
この 3パターンでほとんどのタイプの RSS データを取得できると思います。
参考URL:PHP: SimpleXMLElement – Manual
とりあえず、iOS, Mac OS X アプリ検索 & ブログ用タグ生成ツール に アプリランキングを表示してみました。(検索結果のサイドバーに出てきます。)
ちなみに iOS アプリとかのランキング RSS は、Apple – iTunes – RSS Generator で取得できます。
でわでわ。