Consuming an Atom Feed

Zend\Feed\Reader\Feed\Atom is used in much the same way as Zend\Feed\Reader\Feed\Rss. It provides the same access to feed-level properties and iteration over entries in the feed. The main difference is in the structure of the Atom protocol itself. Atom is a successor to RSS; it is a more generalized protocol and it is designed to deal more easily with feeds that provide their full content inside the feed, splitting RSSdescription tag into two elements, summary and content, for that purpose.

Basic Use of an Atom Feed

Read an Atom feed and print the title and summary of each entry:

1
2
3
4
5
6
7
$feed = Zend\Feed\Reader\Reader::import('http://atom.example.com/feed/');
echo 'The feed contains ' . $feed->count() . ' entries.' . "\n\n";
foreach ($feed as $entry) {
    echo 'Title: ' . $entry->getTitle() . "\n";
    echo 'Description: ' . $entry->getDescription() . "\n";
    echo 'URL: ' . $entry->getLink() . "\n\n";
}

In an Atom feed you can expect to find the following feed properties:

  • title- The feed’s title, same as RSS‘s channel title

  • id- Every feed and entry in Atom has a unique identifier

  • link- Feeds can have multiple links, which are distinguished by a type attribute

    The equivalent to RSS‘s channel link would be type="text/html". if the link is to an alternate version of the same content that’s in the feed, it would have a rel="alternate" attribute.

  • subtitle- The feed’s description, equivalent to RSS‘ channel description

  • author- The feed’s author, with name and email sub-tags

Atom entries commonly have the following properties:

  • id- The entry’s unique identifier

  • title- The entry’s title, same as RSS item titles

  • link- A link to another format or an alternate view of this entry

    The link property of an atom entry typically has an href attribute.

  • summary- A summary of this entry’s content

  • content- The full content of the entry; can be skipped if the feed just contains summaries

  • author- with name and email sub-tags like feeds have

  • published- the date the entry was published, in RFC 3339 format

  • updated- the date the entry was last updated, in RFC 3339 format

Where relevant, Zend\Feed supports a number of common RSS extensions including Dublin Core and the Content, Slash, Syndication, Syndication/Thread and several other extensions in common use on blogs.

For more information on Atom and plenty of resources, see http://www.atomenabled.org/.

Table Of Contents

Previous topic

Consuming an RSS Feed

Next topic

Consuming a Single Atom Entry

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

Edit this document

Edit this document

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.

  1. Login with your GitHub account.
  2. Go to Consuming an Atom Feed on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.