Retrieving Feeds from Web Pages¶
Find Feed Links¶
Web pages often contain <link> tags that refer to feeds with content relevant to the particular page.
Zend\Feed\Reader\Reader
enables you to retrieve all feeds referenced by a web page with one simple method call:
1 | $feedLinks = Zend\Feed\Reader\Reader::findFeedLinks('http://www.example.com/news.html');
|
Here the findFeedLinks()
method returns a Zend\Feed\Reader\FeedSet
object, that is in turn, a collection
of other Zend\Feed\Reader\FeedSet
objects, that are referenced by <link> tags on the news.html
web page.
Zend\Feed\Reader\Reader
will throw a Zend\Feed\Reader\Exception\RuntimeException
upon failure, such as
an HTTP 404 response code or a malformed feed.
You can examine all feed links located by iterating across the collection:
1 2 3 4 5 6 7 | $rssFeed = null;
$feedLinks = Zend\Feed\Reader\Reader::findFeedLinks('http://www.example.com/news.html');
foreach ($feedLinks as $link) {
if (stripos($link['type'], 'application/rss+xml') !== false) {
$rssFeed = $link['href'];
break;
}
|
Each Zend\Feed\Reader\FeedSet
object will expose the rel, href, type and title properties of detected links for
all RSS, Atom or RDF feeds. You can always select the first encountered link of each type by using a shortcut:
1 2 3 | $rssFeed = null;
$feedLinks = Zend\Feed\Reader\Reader::findFeedLinks('http://www.example.com/news.html');
$firstAtomFeed = $feedLinks->atom;
|