Asterisk - アスタリスク -

説明するほどでもないブログ

PHPでRSSフィードを取得してみた

今更な記事ですね!でも自分のやったことを残しておくためなので許してください。
PHPという言語を極めたいわけではないですが、何かつくりたいなぁ~って思いながら学習しています。
んで、今回はRSSフィードの取得です。以下のコードはニコニコ動画RSSを取得して解析?してます。

<?php
    // URLを指定してRSSフィードを取得
    $feed = simplexml_load_file("http://www.nicovideo.jp/ranking/fav/daily/vocaloid?rss=2.0&lang=ja-jp");

    // フィードタイトル
    echo $feed->channel->title . "<br>";

    // フィードのアイテムを取得(ここでは最初のアイテム)
    $entry = $feed->channel->item[0];

    echo $entry->title . "<br>";
    echo $entry->link . "<br>";
    echo $entry->guid . "<br>";
    echo $entry->pubDate . "<br>";

    $string = $entry->description;

    preg_match ( "/<p class=\"nico-thumbnail\">(.*?)<\/p>/i", $string, $match);
    echo  "thumbnail: " . $match[1] . "<br>";

    preg_match ( "/<p class=\"nico-description\">(.*?)<\/p>/i", $string, $match);
    echo  "description: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-number\">(.*?)<\/strong>/i", $string, $match);
    echo  "points: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-length\">(.*?)<\/strong>/i", $string, $match);
    echo  "length: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-date\">(.*?)<\/strong>/i", $string, $match);
    echo  "date: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-total-view\">(.*?)<\/strong>/i", $string, $match);
    echo  "total-view: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-total-res\">(.*?)<\/strong>/i", $string, $match);
    echo  "total-res: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-total-mylist\">(.*?)<\/strong>/i", $string, $match);
    echo  "total-mylist: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-daily-view\">(.*?)<\/strong>/i", $string, $match);
    echo  "daily-view: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-daily-res\">(.*?)<\/strong>/i", $string, $match);
    echo  "daily-res: " . $match[1] . "<br>";

    preg_match ( "/<strong class=\"nico-info-daily-mylist\">(.*?)<\/strong>/i", $string, $match);
    echo  "daily-mylist: " . $match[1] . "<br>";
?>

とりあえずデータを引っこ抜くという目的は果たせてるのでOKかな?
はまったのは正規表現の部分ですね・・・。まだ意味を理解してないので時間をかけてゆっくりとね。
因みに、このソースコードをコピペで実行すれば無機質なテキストがブラウザに出力されます。