12.11. Reading RSS Feeds

Problem

You want to retrieve an RSS feed and look at the items. This allows you to incorporate newsfeeds from multiple web sites into your application.

Solution

Use the PEAR XML_RSS class. Here’s an example that reads the RSS feed for the php.announce mailing list:

require 'XML/RSS.php';

$feed = 'http://news.php.net/group.php?group=php.announce&format=rss';

$rss =& new XML_RSS($feed);
$rss->parse();

print "<ul>\n";
foreach ($rss->getItems() as $item) {
    print '<li><a href="' . $item['link'] . '">' . $item['title'] . "</a></li>\n";
}
print "</ul>\n";

Discussion

RSS, which stands for RDF Site Summary, is an easy-to-use headline or article syndication format written in XML.[9] Many news web sites, such as Slashdot and O’Reilly’s Meerkat, provide RSS feeds that update whenever new stories are published. Weblogs have also embraced RSS and having an RSS feed for your blog is a standard feature. The PHP web site also publishes RSS feeds for most PHP mailing lists.

Retrieving and parsing a RSS feed is simple:

$feed = 'http://news.php.net/group.php?group=php.announce&format=rss';

$rss =& new XML_RSS($feed);
$rss->parse();

This example makes $rss a new XML_RSS object and sets the feed to the RSS feed for the php.announce mailing list. The feed is then parsed by XML_RSS::parse( ) and stored internally within $rss.

RSS items are then retrieved as an associative array using XML_RSS:getItems( ) :

print "<ul>\n"; foreach ($rss->getItems() as $item) { print '<li><a href="' ...

Get PHP Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.