Avatar billede tendal Nybegynder
31. marts 2007 - 13:14 Der er 7 kommentarer og
1 løsning

RSS Feed

Hej Eksperter
Jeg vil super gerne have rss feeds fra eksempelvis sporten.tv2.dk på min hjemmeside, men aner ikke hvordan man gør. Et der nogen der har et godt script som tillader det. Jeg vil gerne have et hvor man kan ændre i størrelsen  - det skal nemlig helst ikke være så stort (fylde så meget).

På forhånd tak
Avatar billede leif Seniormester
31. marts 2007 - 13:17 #1
Avatar billede tendal Nybegynder
31. marts 2007 - 19:54 #2
synes måske ikke det er det bedste - har lidt svært ved at overskue det, men jeg må gøre en ekstra indsats
Avatar billede sjh Nybegynder
31. marts 2007 - 23:53 #3
så prøv den her :


<?php
  class RSSParser    {
    var $link = "";
    var $title = "";
    var $pubdate = "";
    var $description = "";
    var $inside_item = false;
    var $current_tag = "";
    var $array_items = array();
    function startElement($parser, $name, $attrs='')
    {
      $this->current_tag = $name;
      if ($this->current_tag == "ITEM")
      {
        $this->inside_item = true;
      }
    }
    function endElement($parser, $tagName, $attrs='')
    {
      if ($tagName == "ITEM")
      {
        $this->array_items[] = array($this->title, $this->link, $this->description, $this->pubdate);
       
        $this->link = "";
        $this->title = "";
        $this->description = "";
        $this->pubdate = "";
       
        $this->inside_item = false;
      }
    }
    function characterData($parser, $data)
    {
      if ($this->inside_item)
      {
        switch($this->current_tag)
        {
          case "TITLE":
            $this->title .= $data;
          break;
          case "DESCRIPTION":
            $this->description .= $data;
          break;
          case "LINK":
            $this->link .= $data;
          break;
          case "PUBDATE":
            $this->pubdate .= $data;
          break;
         
          default:
          break;
        }
      }
    }
    function parse_results($xml_parser, $rss_parser, $file)
    {
      xml_set_object($xml_parser, &$rss_parser);
      xml_set_element_handler($xml_parser, "startElement", "endElement");
      xml_set_character_data_handler( $xml_parser, "characterData");
      $xml_data = @file_get_contents($file);
      if ($xml_data)
      {
        xml_parse($xml_parser, $xml_data);
      }
      xml_parser_free($xml_parser);
    }
  } // end class

  $xml_parser = xml_parser_create();
  $rss_parser = new RSSParser();

  $rss_parser->parse_results($xml_parser, &$rss_parser, "http://sporten.tv2.dk/rss/sporten.xml");
  $rss_array = $rss_parser->array_items;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>RSS Sporten</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  </head>
  <body>
<?
  if (is_array($rss_array))
  {
    foreach($rss_array as $array)
    {
      list($title, $link, $description, $pubdate) = $array;
      // Her kommer det så ud...
      echo "$title, $link, $description, $pubdate";
    }
  }
?>
  </body>
</html>
Avatar billede tendal Nybegynder
01. april 2007 - 10:08 #4
Nu har jeg kopieret scriptet og sat det ind på siden, men jeg må sige at det rent layoutmæssigt ikke ser specielt godt ud, blandt andet kan æ,ø og å ikke viser og output som dette
Overblikket lørdag den 31. marts , http://sporten.tv2.dk/article.php/id-6556079.html?rss ,
er sådan set ikke så kønt. Desuden havde jeg håbet at man kunne nøjes med de 5 nyeste eller sådan noget, for der er godt nok mange.
Men når man kopiere scripts som går over ens forstand så er man jo lidt på herrens mark :o) Hjælp
Avatar billede sjh Nybegynder
01. april 2007 - 17:00 #5
det med æøå det er fordi de benytter utf-8.. brug : utf8_decode()

<?
  if (is_array($rss_array))
  {
    $count = 5; // de 5 nyeste..
    foreach($rss_array as $array)
    {
      list($title, $link, $description, $pubdate) = $array;
      // Her kommer det så ud...
      echo utf8_decode("$title, $link, $description, $pubdate<br>");
      $count--;
      if ($count == 0)
      {
        break;
      }
    }
  }
?>
Avatar billede tendal Nybegynder
01. april 2007 - 18:12 #6
Har faktisk fundet et super script som jeg har benyttet. Fandt det på http://www.dynamicdrive.com/dynamicindex18/rssdisplaybox/index.htm, men tak for jeres kommentarer - i kan smide et par svar så I kan få point. Har du lige et afsluttende spørgsmål, men selvfølgelig til det script som jeg netop har linket til - hvorfor virker sporten.tv2.dk's feeds ikke med dette script?
Avatar billede leif Seniormester
01. april 2007 - 18:58 #7
Jeg hopper over
Avatar billede sjh Nybegynder
01. april 2007 - 19:39 #8
(hvorfor virker sporten.tv2.dk's feeds ikke med dette script?) Jeg kan se at RSS Display Boxes benytter sig af fsockopen() til at hente feeds.. men de har åbenbart lavet en fejl når tv2 sender feeds som gzip-encoding..

Men hvad fejler den jeg har lavet da?? virker den ikke??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester