Symfony1.4でRSS Feedを取得 and SwiftMailerでメール送信(gmail)

sfFeed2Pluginをインストールします。

# symfony plugin:install sfFeed2Plugin
# symfony cc

あとは簡単。RSSフィードをsfFeed2を使って取得します。

$feed = sfFeedPeer::createFromWeb('http://feed/rss.xml');
foreach( $feed->getItems() as $item)
{
    /* 
        $item->getTitle();
        $item->getLink();
        $item->getAuthorName();
        $item->getAuthorEmail();
        $item->getPubdate();
        $item->getUniqueId();
        $item->getDescription();
    */
}

複数のフィードをまとめて取得することも可能です。

$feed1 = sfFeedPeer::createFromWeb('http://feed/rss2.0.xml');
$feed2 = sfFeedPeer::createFromWeb('http://feed/rss2.0.xml');
$feed = sfFeedPeer::aggregate(array($feed1, $feed2),array('limit' => 30));
foreach( $feed->getItems() as $item){ }

User-Agentなどを指定して取得する方法もあります。

# symfony plugin:install sfFeed2Plugin
# symfony plugin:install sfWebBrowserPlugin
# symfony cc

でsfWebBrowserPluginを追加にンストールします。

$browser = new sfWebBrowser(
	array(
		'user_agent' => 'symfony 1.4 sfWebBrowser and sfFeed2Plugin',
		'timeout' => 15
	)
);
$url = 'http://feed/rss2.0.xml';
$feedString = $browser->get($url)->getResponseText();
$rssFeed = new sfRssFeed();
$rssFeed->fromXml($feedString);
$feed = $rssFeed->feed;
foreach( $feed->getItems() as $item){ }