CakePHP で RSS 取得して表示する

  • このエントリーをはてなブックマークに追加

CakePHPでRSS取得する方法。

すげー簡単です^^

例としてlivedoor newsのトピックスを取ってきたい場合

コントローラーで

    function index () {
        uses('Xml');
        $xml = new Xml('http://news.livedoor.com/topics/rss.xml');
        $rss = Set::reverse($xml);

        return $rss['Rss']['Channel']['Item'];
    }

と書くだけ。$rssには取得したxmlが配列形式で格納されます。

requestActionから利用するときは

        if (empty($this->params['requested'])) {
            $this->cakeError('error404');
        }

と書いといて、requestActionからのみアクセスできるようにしておきます。

ビューからは

        <?php $index = $this->requestAction('/rsses/index/'); ?>
        <?php if ($index) : ?>
          <ul>
          <?php foreach($index as $item) : ?>
            <li><a href="<?php echo $item['link']; ?>" target="_blank"><?php echo $item['title']?></a></li>
          <?php endforeach; ?>
          </ul>
        <?php endif; ?>

このような感じで取ってきたRSSを表示すれば、簡単にサイトにlivedoor newsが表示できます。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

ads

コメントを残す

*