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が表示できます。