RSS-Feeds von Serendipity in eine Website einbinden

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
RolandG
Regular
Posts: 34
Joined: Mon May 11, 2015 4:52 pm

RSS-Feeds von Serendipity in eine Website einbinden

Post by RolandG »

Es gibt verschiedene Programmschnipsel, mit denen man RSS-Feeds in eine Website einbinden kann. Zum Beispiel

Code: Select all

<?php
  function rss2html($url,$anz) {
    $n=1;
    $output = '<ul>';
    if ($rss = @simplexml_load_file($url)) {
      foreach($rss->channel->item as $item) {
      $output .= '<li class="item_link">';
      $output .= '<a href = "'.$item->link.'">'.$item->title.'</a> ';
      $output .= '<span class="it_date"> - ';
      $output .= date("d.m.Y",strtotime($item->pubDate)).'</span>';
      $output .= '<br />'.$item->description;
      //$output .= "<a href=\"{$item->link}\"> ...</a>";
      $output .= '</li>';
      if($n>=$anz){break;}
      $n++;
    }
    return utf8_decode($output).'</ul>';
  } else {return "<p>Fehler beim Einlesen der Datei $url</p>";}
  }  
  echo rss2html("http://feeds.feedburner.com/s9y",3);
  echo rss2html("http://blog.tagesschau.de/feed/",3);
?>
Damit erhalte ich von den unterschiedlichsten Blogs die Einträge mit Überschrift, Erstellungsdatum und ein Stück des Texts.

Nur bei Serendipity-Blogs funktioniert das leider nicht. Da bekomme ich immer nur die Übrschrift und das Erstellungsdatum.

Wie bekomme ich auch von Serendipity-Blogs auch ein Stück des Texts?
onli
Regular
Posts: 2828
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: RSS-Feeds von Serendipity in eine Website einbinden

Post by onli »

Code: Select all

$output .= '<br />'.$item->description;
Das ist die Zeile, die bei uns nicht funktioniert. RSS ist nicht zu 100% spezifiziert und manche Feeds packen den Beitrag in die description, was semantischer Unsinn und für Feedreader nicht sinnvoll ist. Daher liegt bei uns der Eintrag in <content:encoded>.

Ich weiß nicht, wie simplexml mit namespaces (dem :encoded) umgeht. Ich denke, du musst den namespace ignorieren lassen und auf $item->content zugreifen.

Aus diesem content kannst du dann ein paar Zeilen extrahieren, wenn du nur einen Teil anzeigen willst.
Post Reply