Log in

View Full Version : RSS Feed Question


darknexxus
02-20-2009, 02:34 AM
I want to link two RSS feeds, both from Vbulletin systems on different domains to one page on another domain.





<?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 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

darknexxus
02-22-2009, 06:48 AM
Seems I stumped everyone.
:cool:

Lynne
02-22-2009, 03:53 PM
You are showing us the code that worked for you. It would help to see the code that doesn't work for you so we can see what might be wrong.

Also, you say you are calling this at the top of the forum and thread pages - do you have an image to show what it is you are trying to accomplish?