"; //default before var $after_tem = ""; //default after function startElement($parser, $name, $attrs) { if($this->insideitem) { $this->tag = $name; } else if($name == "ITEM") { $this->insideitem = true; } } function endElement($parser, $name) { if ($name == "ITEM") { printf("$this->before_item%s$this->after_tem",trim($this->link),htmlspecialchars(trim($this->title))); $this->title = ""; $this->description = ""; $this->link = ""; $this->insideitem = false; $this->num++; } } function characterData($parser, $data) { if($this->insideitem) { switch($this->tag) { case "TITLE": $this->title .= $data; break; case "DESCRIPTION": $this->description .= $data; break; case "LINK": $this->link .= $data; break; } } } function RSSParser($feed,$numitems,$before = "
  • ",$after = "
  • ") { $this->num = 0; $this->before_item = $before; $this->after_item = $after; $xml_parser = xml_parser_create(); xml_set_object ($xml_parser, $this ); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); $fp = fopen($feed,"r") or die("Error reading RSS data. Click here to view it (with rss reader)."); while (($data = fread($fp, 4096)) && ($this->num < $numitems)) { xml_parse($xml_parser, $data, feof($fp)) or die("Error parsing RSS data. Click here to view it (with rss reader)."); } fclose($fp); xml_parser_free($xml_parser); } } ?>