Vraag & Antwoord

Webprogrammeren & scripting

[PHP] rssfeed 2 php

2 antwoorden
  • 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.....
  • 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.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.