Connecting Tech Pros Worldwide Help | Site Map

Integrating RSS feed into a website..

  #1  
Old July 17th, 2005, 05:56 AM
Mayhem
Guest
 
Posts: n/a
I would like to integrate an RSS newsfeed into my website but can't
seem to figure out how.
Has anyone got any pointers for me?

E.
  #2  
Old July 17th, 2005, 05:56 AM
Brendan Donahue
Guest
 
Posts: n/a

re: Integrating RSS feed into a website..


Mayhem wrote:
[color=blue]
> I would like to integrate an RSS newsfeed into my website but can't
> seem to figure out how.
> Has anyone got any pointers for me?
>
> E.[/color]
Yeah, search http://google.com and http://php.net for "PHP XML" or "PHP RSS
PARSING". There are dozens of sites that will tell you how to do this
already out there.
  #3  
Old July 17th, 2005, 05:56 AM
Terence
Guest
 
Posts: n/a

re: Integrating RSS feed into a website..


Mayhem wrote:
[color=blue]
> I would like to integrate an RSS newsfeed into my website but can't
> seem to figure out how.
> Has anyone got any pointers for me?
>
> E.[/color]

use XSLT.

You will need to write an XSL template to convert the raw RSS formatted
XML into whatever HTML you want.

This might work:

$xh = xslt_create();
$html = xslt_process($xh, 'http://theSource/info.rss', 'rss2xhtml.xsl');
echo $html;

You will obviously have to provide 'rss2xhtml.xsl'. See zvon.org for
tutorials and a crash course in writing XSLT templates.

don't concern yourself with parsing RSS. XML parsing built into the XSLT
processor will be enough for your needs.

If you're struggling with XSLT, join this mailing list, they are very
helpful. http://www.mulberrytech.com/xsl/xsl-list/index.html

Once you can do basic XML/XSLT transformations, you'll wonder how you
ever lived without it.

Also, if you're lazy ;)
you might want to check this out
http://www.2rss.com/index.php?rss=5894
  #4  
Old July 17th, 2005, 05:58 AM
marathon
Guest
 
Posts: n/a

re: Integrating RSS feed into a website..


On Thu, 22 Apr 2004 23:15:41 +0200, Mayhem in comp.lang.php wrote:[color=blue]
>I would like to integrate an RSS newsfeed into my website but can't
>seem to figure out how.
>Has anyone got any pointers for me?[/color]

I had the same issue a few weeks ago. Using Google, I found a snippet which I
adapted to my needs. Here's something you might be able to work with;

<?php
$_item = array();
$_depth = array();
$_tags = array("dummy");

function initArray()
{
global $_item;

$_item = array ("TITLE"=>"", "LINK"=>"",
"DESCRIPTION"=>"", "URL"=>"");
}

function startElement($parser, $name){
global $_depth, $_tags, $_item;

if (($name=="ITEM") ||
($name=="CHANNEL")
|| ($name=="IMAGE")) {
initArray();
}
@$_depth[$parser]++;
array_push($_tags, $name);
}

function endElement($parser, $name){
global $_depth, $_tags, $_item;

array_pop($_tags);
$_depth[$parser]--;
switch ($name) {
case "ITEM":
echo "<p><a href=\"{$_item['LINK']}
\">" .
"{$_item['TITLE']}</a></p>\n";
initArray();
break;

case "IMAGE":
echo "<a href=.{$_item['LINK']}.>" .
"<DEFANGED_IMG src=.{$_item
['URL']}. " .
"alt=.{$_item['TITLE']};
border=.0.></a>\n<br />\n";
initArray();
break;

case "CHANNEL":
echo "<h3>{$_item['TITLE']}</h3>\n";
initArray();
break;
}
}

function parseData($parser, $text){
global $_depth, $_tags, $_item;

$crap = preg_replace ("/\s/", "", $text);
/* is the data just whitespace?
if so, we don't want it! */

if ($crap) {
$text = preg_replace ("/^\s+/", "", $text);
/* get rid of leading whitespace */
if (@$_item[$_tags[$_depth[$parser]]]) {
$_item[$_tags[$_depth[$parser]]] .=
$text;
} else {
$_item[$_tags[$_depth[$parser]]] =
$text;
}
}
}

function parseRDF($file){
global $_depth, $_tags, $_item;

$xml_parser = xml_parser_create();
initArray();

/* Set up event handlers */
xml_set_element_handler
($xml_parser, "startElement", "endElement");
xml_set_character_data_handler
($xml_parser, "parseData");

/* Open up the file */
$fp = fopen ($file, "r") or die ("Could not
open $file for input");

while ($data = fread ($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof
($fp))) {
die (sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code
($xml_parser)),
xml_get_current_line_number
($xml_parser)));
}
}

fclose($fp);
xml_parser_free($xml_parser);
}

parseRDF
("http://freshmeat.net/backend/fm-releases.rdf");
#("http://www.theregister.co.uk/headlines.rss");
?>

<br />
<h2>Latest Headlines From Newsforge</h2>
<?php
/* declare different RSS feed. Since the code to parse source is
* already listed, all one needs to do is list the new source as
* follows*/
parseRDF("http://www.newsforge.com/newsvac.rss");

Replace the last line, with whatever source you wish to parse.

There are some varations out there, were one can cache the file in a dbase, so
that each time teh page is loaded it doesn't hit the remote server everytime.
But, I'll leave that as an exercise for you to find. ;)

HTH.

--
S.Allen
-------------------------------------------
barnyard Sunday Apr 25 2004 11:10:02 PM EDT
-------------------------------------------
Ver o que é justo e não agir com justiça é a maior das covardias
humanas.
-- Confúcio
  #5  
Old July 17th, 2005, 05:59 AM
Tim Van Wassenhove
Guest
 
Posts: n/a

re: Integrating RSS feed into a website..


In article <slrnc8ovt9.g0s.M@barnyard.sweetpig.dyndns.org>, marathon wrote:[color=blue]
> On Thu, 22 Apr 2004 23:15:41 +0200, Mayhem in comp.lang.php wrote:[color=green]
>>I would like to integrate an RSS newsfeed into my website but can't
>>seem to figure out how.
>>Has anyone got any pointers for me?[/color]
>
> I had the same issue a few weeks ago. Using Google, I found a snippet which I
> adapted to my needs. Here's something you might be able to work with;[/color]

[snip code]

Or you could simply use the code at http://magpierss.sf.net
  #6  
Old July 17th, 2005, 10:57 AM
mail@page-zone.com
Guest
 
Posts: n/a

re: Integrating RSS feed into a website..


I set up an rss feed then documented exactly how I did it on this page:
http://www.yourweb.name/
It definitely isn't the only way or the best way, but it works.

Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
python-dev Summary for 2006-01-16 through 2006-01-31 Steven Bethard answers 0 April 29th, 2006 05:05 AM