Channels ▼

Web Development

Shelling the Pod

Source Code Accompanies This Article. Download It Now.

David works as a musician, writer, and software engineer. You can contact him at

It used to be that aspiring stars had to rely on a long line of producers, directors, and the like to achieve their ambitions. With advances in technology, ways of gaining 15 minutes of fame are proliferating like well-fed rabbits. Companies and individuals with products to sell are also looking for new ways to communicate with their current and potential customers. On the flip side, those of us seeking entertainment, plain old information, or a combination of both can satisfy our desires in more different ways than there are programming languages. One of the most effective ways of communicating is "podcasting."

Podcasting is an unfortunate term for this phenomenon, since it has nothing specific to do with Apple's iPods. I do use iTunes on a PC, but even that is not required. There are many different podcast clients available, and Yahoo has an online mechanism for listening and subscribing to podcasts (

Podcasters present their content via RSS feeds—XML files that describe the podcast, as well as individual episodes of podcasts. At this writing, the current version is RSS 2.0. Its specification is maintained by the Berkman Center for Internet & Society at Harvard Law School (

With the popularity of podcasting comes the inevitable problem of separating the wheat from the chaff, or of simply finding podcasts that meet your interests. From the podcaster's point of view, the challenge is to make their offering stand out. In this article, I use PHP to dynamically create a web page that describes podcasts, and a separate page that describes any particular episode of the podcast. Because these web pages get their information from the RSS feed, the pages will automatically update when the feed is updated with changes or additions of new episodes.

The code listings include the RssInfo class that retrieves all the required information from an RSS feed, and two HTML/PHP pages that demonstrate how to use RssInfo. The first web page describes the podcast itself and displays a list of the individual episodes in the form of web links. When a link is selected, users are taken to the second page, which describes the selected episode.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.