anoniem Geplaatst: 15 augustus 2005 Delen Geplaatst: 15 augustus 2005 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..... Quote Link naar reactie
anoniem Geplaatst: 17 augustus 2005 Auteur Delen Geplaatst: 17 augustus 2005 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. Quote Link naar reactie
anoniem Geplaatst: 17 augustus 2005 Auteur Delen Geplaatst: 17 augustus 2005 [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 Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen