|
Posted by eltower on 03/22/07 22:46
adactio.com/journal/1202 has a very interesting PHP script which
gathers RSS data from various feeds and prints them in an HTML table.
He calls this a lifestream.
Anyways, unfortunately, my knowledge of PHP is rather limited - I'd
rather work with a stylesheet. It turns out that my local machine has
PHP5, and the script works flawlessly. However, Bluehost, my hosting
provider, has PHP 4.4.4. As a result, I'm getting a lot of exceptions
thrown around. I think I figured out my way around the
getElementsByTagName(), which should be get_elements_by_tagname() in
PHP4, but I'm still getting heavy exceptions. I also googled and found
that the date_default_timezone_set() function isn't supported in PHP4
either.
I'd appreciate it greatly if anyone could point out where the
incompatibilities are - even if there's a better way of doing this RSS
gathering, I'd just like to see anyway for educational purposes.
My PHP source is the following (I've left out the HTML surrounding
it):
<?php
date_default_timezone_set("Europe/Paris");
$feeds = array(
"feed1" => "http://...",
"feed2" => "http://...",
"feed3" => "http://...",
"feed4" => "http://..."
);
$details = array("title","link");
$list = array();
$rss = new DOMDocument();
foreach ($feeds as $name => $feed) {
$rss -> load($feed);
$items = $rss -> getElementsByTagName("item");
foreach ($items as $item) {
if ($item -> getElementsByTagName("pubDate") -> item(0)) {
$date = $item -> getElementsByTagName("pubDate") ->
item(0) -> nodeValue;
} else {
$date = $item -> getElementsByTagName("date") -> item(0) -
> nodeValue;
}
$date = strtotime(substr($date,0,25));
$list[$date]["name"] = $name;
foreach ($details as $detail) {
$list[$date][$detail] = $item ->
getElementsByTagName($detail) -> item(0) -> nodeValue;
}
}
}
krsort($list);
$day = "";
foreach ($list as $timestamp => $item) {
$this_day = date("F jS",$timestamp);
if ($day != $this_day) {
echo "</tbody>\n";
echo "<thead>\n";
echo "<tr>\n";
echo "<th colspan=\"3\">";
echo $this_day;
echo "</th>\n";
echo "</tr>\n";
echo "</thead>\n";
echo "<tbody>\n";
$day = $this_day;
}
echo "<tr class=\"vevent_";
echo $item["name"];
echo "\">\n";
echo "<th>";
echo "<abbr class=\"dtstart\" title=\"";
echo date("c",$timestamp);
echo "\">";
echo date("g:ia",$timestamp);
echo "</abbr>";
echo "</th>\n";
echo "<td>";
echo "<a class=\"url_summary\" href=\"";
echo $item["link"];
echo "\">";
echo $item["title"];
echo "</a>";
echo "</td>\n";
echo "<td class=\"icon\">";
echo "<img src=\"images/";
echo $item["name"];
echo ".gif\" alt=\"";
echo $item["name"];
echo "\" />";
echo "</td>\n";
echo "</tr>\n";
}
?>
Many thanks,
Adri
Navigation:
[Reply to this message]
|