Gå til innhold

RSS "leser" som leser av flere RSS-feeder samtidig


Anbefalte innlegg

Ja.. Tittelen beskiver det meste da :) Hvordan få et RSS script til å lese fra flere RSS-feeder samtidig og legge de inn etter rekkefølge fra dato?

 

<?php
setlocale(LC_ALL, 'no', 'no-NO', 'no_NO'); 
$dato = strftime('%d %B %Y, %H:%M');

class RSSParser { 

  var $insideitem = false; 
  var $tag = ""; 
  var $title = ""; 
  var $description = ""; 
  var $link = ""; 
  var $dtime = "";

  function startElement($parser, $tagName, $attrs) { 
      if ($this->insideitem) { 
          $this->tag = $tagName; 
      } elseif ($tagName == "ITEM") { 
          $this->insideitem = true; 
      } 
  } 

  function endElement($parser, $tagName) { 
      if ($tagName == "ITEM") { 
          printf("<b><a href='%s'>%s</a></b> %s<br>", 
            trim($this->link),htmlspecialchars(trim($this->title)),trim($this->dtime)); 
            $hvilke = array("<b>", "</b>");
            $erstatt = array("", "");
          printf("%s<br><br>", trim(str_replace($hvilke, $erstatt, $this->description))); 
          $this->title = ""; 
          $this->description = ""; 
          $this->link = ""; 
          $this->dtime = ""; 
          $this->insideitem = false; 
      } 
  } 

  function characterData($parser, $data) { 
      if ($this->insideitem) { 
          switch ($this->tag) { 
              case "TITLE": 
              $this->title .= $data; 
              break; 
              case "DC:DATE": 
              $dato = $data;
              $dato2 = explode("T", $dato);
   $dato3 = explode("+", $dato2[1]);

   $datoen = "<b>".$dato3[0]."</b> ".str_replace("-", ".", $dato2[0]);
              $this->dtime .= $datoen; 
              break; 
              case "DESCRIPTION": 
              $this->description .= $data; 
              break; 
              case "LINK": 
              $this->link .= $data; 
              break; 
          } 
      } 
  } 
} 

$xml_parser = xml_parser_create(); 
$rss_parser = new RSSParser(); 
xml_set_object($xml_parser,&$rss_parser); 
xml_set_element_handler($xml_parser, "startElement", "endElement"); 
xml_set_character_data_handler($xml_parser, "characterData"); 
$fp = fopen("http://www.dinside.no/phpf/feed/rss/dinside.php","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);
?>

 

Koden jeg vil bruke.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...