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 (podcasts.yahoo.com).
Podcasters present their content via RSS feedsXML 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 (blogs.law.harvard.edu/tech/rss).
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.