Reading an RSS feed is as simple as passing the URL of the feed to Zend\Feed\Reader\Reader‘s import method.
1 | $channel = Zend\Feed\Reader\Reader::import('http://rss.example.com/channelName');
|
If any errors occur fetching the feed, a Zend\Feed\Reader\Exception\RuntimeException will be thrown.
Once you have a feed object, you can access any of the standard RSS “channel” properties directly on the object:
1 | echo $channel->getTitle();
|
Properties of the channel can be accessed via getter methods, such as getTitle, getAuthor ...
If channel properties have attributes, the getter method will return a key/value pair, where the key is the attribute name, and the value is the attribute value.
1 2 | $author = $channel->getAuthor();
echo $author['name'];
|
Most commonly you’ll want to loop through the feed and do something with its entries. Zend\Feed\Reader\Feed\Rss internally converts all entries to a Zend\Feed\Reader\Entry\Rss. Entry properties, similarly to channel properties, can be accessed via getter methods, such as getTitle, getDescription ...
An example of printing all titles of articles in a channel is:
1 2 3 | foreach ($channel as $item) {
echo $item->getTitle() . "\n";
}
|
If you are not familiar with RSS, here are the standard elements you can expect to be available in an RSS channel and in individual RSS items (entries).
Required channel elements:
Common optional channel elements:
RSS <item> elements do not have any strictly required elements. However, either title or description must be present.
Common item elements:
In your code you can always test to see if an element is non-empty with:
1 2 3 | if ($item->getPropname()) {
// ... proceed.
}
|
Where relevant, Zend\Feed supports a number of common RSS extensions including Dublin Core, Atom (inside RSS) and the Content, Slash, Syndication, Syndication/Thread and several other extensions or modules.
For further information, the official RSS 2.0 specification is available at: http://blogs.law.harvard.edu/tech/rss
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.