Ga naar inhoud

[PHP] rssfeed 2 php


anoniem

Aanbevolen berichten

ik heb een mooi script (gevonden) die rssfeed kan omzetten naar php. Nu ist de bedoeling dat ik daar een limiet opzet, dat bijvoorbeeld alleen de 3 nieuwste entries getoond worden. Ik heb al het een en ander geprobeerd, maar krijg dat neit voor mekaar. Zouden jullie mij kunnen helpen...¿[code:1:9a8aee0b54]<html> <head> </head> <body> <dl> <?php $insideitem = false; $tag = ""; $title = ""; $description = ""; $link = ""; $pubdate = ""; function startElement($parser, $name, $attrs) { global $insideitem, $tag, $title, $description, $link, $pubdate; if ($insideitem) { $tag = $name; } elseif ($name == "ITEM") { $insideitem = true; } } function endElement($parser, $name) { global $insideitem, $tag, $title, $description, $link, $pubdate; if ($name == "ITEM") { printf("<dt><b><a style='COLOR: rgb(0,153,255);' href='%s'><font size='-1' face='Arial'><b>%s</b></font></a></dt>\n", trim($link),htmlspecialchars(trim($title))); // printf("<dd><font size='-1' face='Arial'>%s</font></dd>\n",trim($description)); printf("<dd><font size='-2' color='gray' face='Arial'><i>%s</i></font></dd>\n\n",date("d-m-Y",strtotime($pubdate))); $title = ""; $description = ""; $link = ""; $pubdate = ""; $insideitem = false; } } function characterData($parser, $data) { global $insideitem, $tag, $title, $description, $link, $pubdate; if ($insideitem) { switch ($tag) { case "TITLE": $title .= $data; break; case "DESCRIPTION": $description .= $data; break; case "LINK": $link .= $data; break; case "PUBDATE": $pubdate .= $data; break; } } } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); $fp = fopen("http://www.nos.nl/nos/rss/nieuws.xml","r") or die("Error reading RSS data."); while ($data = fread($fp, 4096)) xml_parse($xml_parser, $data, feof($fp)) or 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); ?> </dl> </body> </html>[/code:1:9a8aee0b54]De feed is om privacy redenen aangepast, dus dat is alleen voort idee.....
Link naar reactie
misschen werkt dit (ik neem wel een heel andere benadering: eerst open je het document met de functie simplexml_load_file(bestandsnaam) deze functie moet je toekennen aan eev variable (je weet wel met $open = simplexml_load_file(bestandsnaam);) dan kun je met bv $open->de naam van de tag waar jij de waarde van wilt hebben. de waarde opvragen. dit moet je ook weer aan een variable toekennen als er meer tag met dezelfde naam in je document staan maakt php van die variable automatisch een array. die array kun je dan doorlopen met for en dan wordt het script iets als dit: [code:1:cb8b85ec03] <?php $file = simplexml_load_file("bestand.xml"); $text = file->text; for($doorloop = 0; doorloop < 3; doorloop++;){ print ("$text[doorloop] <br>") } ?> [/code:1:cb8b85ec03] Ik hoop dat dit werkt.
Link naar reactie
[quote:65b2f800ab="xxxfpnxxx"] [code:1:65b2f800ab] <?php $file = simplexml_load_file("bestand.xml"); $text = file->text; for($doorloop = 0; doorloop < 3; doorloop++;){ print ("$text[doorloop] <br>") } ?> [/code:1:65b2f800ab] [/quote:65b2f800ab] Wie zegt dat de [b:65b2f800ab]3 nieuwste items[/b:65b2f800ab] als eerste in de array staan? tip: http://forum.computertotaal.nl/phpBB2/viewtopic.php?t=147299
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...