I want to link two RSS feeds, both from Vbulletin systems on different domains to one page on another domain.
PHP Code:
<?php
// ############################ BEGIN vBulletin Code ###############################
// ######################################################
// ## configuration
// ##
// ## $rss_file= 'http://www.vbulletin.com/forum/external.php?type=rss';
// ## Adjust this variable to point to your RSS feed
$rss_file = 'http://forums.domain.com/external.php?type=rss';
// ## configuration end
// ######################################################
// ## Do not touch code below!
$is_item = false;
$tag = '';
$title = '';
$description = '';
$link = '';
function character_data($parser, $data)
{
global $is_item, $tag, $title, $description, $link;
if ($is_item)
{
switch ($tag)
{
case "TITLE":
$title .= nl2br($data);
break;
case "DESCRIPTION":
$description .= nl2br($data);
break;
case "LINK":
$link .= $data;
break;
}
}
}
function begin_element($parser, $name)
{
global $is_item, $tag;
if ($is_item)
{
$tag = $name;
}
else if ($name == "ITEM")
{
$is_item = true;
}
}
function end_element($parser, $name)
{
global $is_item, $title, $description, $link, $rss_output;
if ($name == "ITEM")
{
$link = str_ireplace("http://www.domain.com/forums", "http://forums.domain.com", $link);
$rss_output .= "<p><a href='" . trim($link) . "'>" . trim($title) . "</a>" . trim($description) . "</p>";
$rss_output = str_replace("<br /></a><br />", "</a><br />", $rss_output);
$title = "";
$description = "";
$link = "";
$is_item = false;
}
}
$parser = xml_parser_create();
xml_set_element_handler($parser, "begin_element", "end_element");
xml_set_character_data_handler($parser, "character_data");
$fp = fopen($rss_file,"r");
while ($data = fread($fp, 4096))
{
xml_parse($parser, $data, feof($fp));
}
fclose($fp);
xml_parser_free($parser);
// ####
// ############################## END vBulletin Code ###############################
?>
That's the code I'm using. I call the file using two separate files (threads.php and forums.php) with only the above code in them. I then use
PHP Code:
<?php echo $rss_output; ?>
to call the script and display the contents.
The above code works, but only for one domain. Try using it on two and I get fatal call errors. I tried changing rss to css in one of the files and changed the call code $css_output. I then got the error Cannot redeclare character_data() (previously declared.
Is there a way to include both RSS with this script on the same page?
Thanks in advance