Start Blog Tutorial RSS Feed auslesen mit PHP

RSS Feed auslesen mit PHP

get Rss Feed CodeViele Websites stellen den Besuchern RSS Feeds zur Verfügung. Die Inhalte lassen sich nicht nur über einen RSS-Reader abrufen, sondern auch in die eigene Homepage einbinden. Mit PHP werden die RSS Feeds ausgelesen. Die ausgelesenen Inhalte des RSS Feeds lassen sich mit CSS individuell an die eigene Homepage anpassen.

Ein Vorteil dieser RSS Feed Abonnements ist, dass der Nutzer über neue Inhalte auf der Website informiert wird, ohne die eigentliche Website zu besuchen.
Viele RSS Feeds werden extern von Webmastern in deren Homepage eingebunden. Oft sieht man z.B. die aktuellen News von Heise.de auf diesen Homepages. Im Folgenden erläutere ich, wie man selber Inhalte aus RSS Feeds ausließt und diese in seine Homepage einbindet. Das Script ist kompatibel mit PHP4 und PHP5. Der Aufbau eines RSS Feed ist simpel.

» Demo (RSS Feed mit PHP auslesen)
» Das PHP-Script als Download (Nutzungsrechte siehe Datei)

Der PHP Code

Damit das PHP Script komfortabel aufgerufen werden kann, habe ich mich dieses Mal dazu entschieden eine Funktion zu programmieren. Die Deklaration der Funktion in PHP geschieht so:

function getRssfeed($rssfeed, $cssclass="", $encode="auto", $anzahl=10, $mode=0) {

Zur Erläuterung der Parameter:
$rssfeed enthält den Link zum RSS Feed
$cssclass enthält den Namen der CSS Klasse, der in der Ausgabe für den Layer (DIV) verwendet werden soll (es wird automatisch rssfeed_ vorangestellt)
$encode enthält die Encodierungs Methode (z.B. “utf-8″; bei “auto” ermittelt das Script die Methode automatisch anhand des RSS Feeds; bei “no” wird nicht encodiert)
$anzahl enthält die Anzahl an Items des RSS Feeds, die maximal angezeigt werden sollen
$mode enthält die Darstellungsart des RSS Feeds (0 = nur Titel und Link der Items weden ausgegeben; 1 = Titel und Link zum Channel werden ausgegeben; 2 = Titel, Link und Beschreibung der Items werden ausgegeben; 3 = 1 & 2)

Der Zugriff auf den RSS Feed geschieht durch @file. Die Items werden mit preg_match_all anhand des item-Tag (<item>) ermittelt. Es werden nur die Inhalte gespeichert, die sich in der definierten Gruppe befinden, hier: (.+).

$data = @file($rssfeed);
$data = implode ("", $data);
preg_match_all("/<item.*>(.+)</item>/Uism", $data, $items);

Nun wird anhand von $encode entschieden, wie die Inhalte encodiert werden sollen:

if($encode == "auto")
{
	preg_match("/<?xml.*encoding="(.+)".*?>/Uism", $data, $encodingarray);
	$encoding = $encodingarray[1];
}
else
{$encoding = $encode;}

Nun folgt das Auslesen und die Ausgabe des Titels und des Links des RSS Channels (sofern $mode entsprechend definiert wurde):

echo "<div class="rssfeed_".$cssclass."">n";
// Titel und Link zum Channel 
if($mode == 1 || $mode == 3)
{
	$data = preg_replace("/<item>(.+)</item>/Uism", '', $data);
	preg_match("/<title>(.+)</title>/Uism", $data, $channeltitle);
	preg_match("/<link>(.+)</link>/Uism", $data, $channellink);

	$channeltitle = preg_replace('/<![CDATA[(.+)]]>/Uism', '$1', $channeltitle);
	$channellink = preg_replace('/<![CDATA[(.+)]]>/Uism', '$1', $channellink);

	echo "<h1><a href="".$channellink[1]."" title="";
	if($encode != "no")
	{echo htmlentities($channeltitle[1],ENT_QUOTES,$encoding);}
	else
	{echo $channeltitle[1];}
	echo "">";
	if($encode != "no")
	{echo htmlentities($channeltitle[1],ENT_QUOTES,$encoding);}
	else
	{echo $channeltitle[1];}
	echo "</a></h1>n";
}

Als nächstes werden Titel, Link und Beschreibung der Items ausgelesen und entsprechend ausgegeben:

// Titel, Link und Beschreibung der Items
foreach ($items[1] as $item) {
	preg_match("/<title>(.+)</title>/Uism", $item, $title);
	preg_match("/<link>(.+)</link>/Uism", $item, $link);
	preg_match("/<description>(.*)</description>/Uism", $item, $description);

	$title = preg_replace('/<![CDATA[(.+)]]>/Uism', '$1', $title);
	$description = preg_replace('/<![CDATA[(.+)]]>/Uism', '$1', $description);
	$link = preg_replace('/<![CDATA[(.+)]]>/Uism', '$1', $link);

	echo "<p class="link">n";
	echo "<a href="".$link[1]."" title="";
	if($encode != "no")
	{echo htmlentities($title[1],ENT_QUOTES,$encoding);}
	else
	{echo $title[1];}
	echo "">";
	if($encode != "no")
	{echo htmlentities($title[1],ENT_QUOTES,$encoding)."</a>n";}
	else
	{echo $title[1]."</a>n";}
	echo "</p>n";
	if($mode == 2 || $mode == 3 && ($description[1]!="" && $description[1]!=" "))
	{
		echo "<p class="description">n";
		if($encode != "no")
		{echo htmlentities($description[1],ENT_QUOTES,$encoding)."n";}
		else
		{echo $description[1];}
		echo "</p>n";
	}
	if ($anzahl-- <= 1) break;
}
echo "</div>nn";

Jetzt muss nur noch die Funktion wieder geschlossen werden:

}

Die Funktion getRssfeed aufrufen

Der Aufruf der Funktion kann wie folgt aussehen:

getRssfeed("http://www.web-spirit.de/web-spirit.php","web-spirit","auto",3,3);

oder auch:

getRssfeed("http://www.heise.de/newsticker/heise.rdf","heise","auto",5,1);

XHTML Ausgabe

Die vollständige Ausgabe mit einem Item sieht in XHTML so aus:

<div class="rssfeed_CSSKLASSE">
	<h1><a href="CHANNEL LINK" title="CHANNEL TITEL">CHANNEL TITEL</a></h1>
	<p class="link"><a href="ITEM LINK" title="ITEM TITEL">ITEM TITEL</a></p>
	<p class="description">ITEM BESCHREIBUNG</p>
</div>

Man kann sehr gut erkennen, wie einfach die XHTML Ausgabe nun in CSS angesprochen und gestaltet werden kann.

» Demo (RSS Feed mit PHP auslesen)
» Das PHP-Script als Download (Nutzungsrechte siehe Datei)

Wie immer kann man mich bei Fragen gerne über das Kontaktformular anschreiben oder einen Kommentar hinterlassen.

Weitere Tutorial-Artikel

Sebastian Gollus

Ich bin seit 2007 selbständiger und freiberuflicher Web-Developer. Auch bin ich studierter Medien­wissen­schaftler mit Abschluss an der Uni Duisburg-Essen in „Angew. Kognitions- und Medien­wissen­schaften”. Neben Deutsch spreche ich auch Englisch und Niederländisch.
Kontakt zu mir gerne auch über Google+ und twitter.

Die neuesten Artikel

130 Kommentare zu “RSS Feed auslesen mit PHP

  1. sbh sagt:

    Hi, Das Script gefällt sehr. Ich habe allerdings ein Problem mit dem Zeichensatz, undzwar scheint es mit UTF-8 nicht zu klappen (darstellung ist falsch à la "Schwere Vorwürfe: McCain und Palin rechnen miteinander ab").

    Bei der Funktionsdekleration steht bei mir:
    function getRssfeed($rssfeed, $cssclass="", $encode="utf-8", $anzahl=10, $mode=0) { …

    Der Aufruf sieht wie folgt aus:
    getRssfeed("http://www.spiegel.de/schlagzeilen/rss/0,5291,,00.xml","","utf-8",6,0);

    Auch wenn ich $encode auf "auto" setze gibts das selbe Problem, ich hoffe mir kann (noch) geholfen werden :)

    lg

  2. Sebastian sagt:

    Hallo sbh,

    welchen Zeichensatz verwendest du denn auf deiner Website?
    Da der Spiegel Feed den Zeichensatz iso-8859-1 verwendet, solltest du mal »iso-8859-1« versuchen.
    getRssfeed(“http://www.spiegel.de/schlagzeilen/rss/0,5291,,00.xml”,””,”iso-8859-1″,6,0);

    Gruß
    Sebastian

  3. sbh sagt:

    Hi,

    danke für die (schnelle) Antwort.

    Auf meiner Seite verwende ich UTF-8. Leider hat der Tipp iso-8859-1 zu benutzen auch nicht gefruchtet.

    Vielleicht noch eine andere Idee? :)

    LG

  4. Sebastian sagt:

    Dann versuch’ doch mal (encoding = no):
    getRssfeed("http://www.spiegel.de/schlagzeilen/rss/0,5291,,00.xml","","no",6,0);

    Alternativ könntest du mir auch deine Website nennen, dann werfe ich mal einen Blick darüber.

    Gruß
    Sebastian

  5. sbh sagt:

    Hi,
    cool, dass du immer so schnell antwortest! Und weil es sich gehört: Der letzte Lösungsvorschlag hat hingehauen! Läuft reibungslos.

    An dieser Stelle – vielleicht interessiert es dich ja auch so noch – die Seite, um die es geht / ging:
    http://imbar.net/start/

    Ich habe die Seite nur für mich gebastelt; und wie man auch unschwer am Pfad erkennen kann, ist sie als Startseite gedacht. Umgesetzt ist die gesamte Seite dann so (PHP Code):
    http://nopaste.tshw.de/1226661731001b6/

    Und ja, ich weiß, dass die Seite unzählige Warnungen wirft; für mich erfüllt sie aber ihren Zweck.

    Vielleicht hast du ja sogar noch eine Idee, was auf diese Startseite integriert werden könnte.

    Auf jeden Fall nochmal herzliches Dankeschön für die Hilfe!
    In diesem Sinne Grüße!

  6. Sebastian sagt:

    Freut mich, dass es nun funktioniert.
    Ich habe das Script für ein neues Projekt inzwischen so umgeschrieben, dass die einzelnen Feeds nicht bei jedem Aufruf der Website neu geparsed werden, sondern in einer Datenbank zwischengespeichert werden. Aktualisierungsinterval ist natürlich individuell festlegbar.

    Das angepasste Script werde ich dann demnächst veröffentlichen. Also es lohnt sich, hin und wieder mal vorbeizuschauen ;)

    Gruß
    Sebastian

  7. Oliver sagt:

    Hallöchen!

    Das ist ja mal ein sehr interessanter Beitrag. Ich habe ein ähnliches Problem: Ich möchte gerne von einer Partnerseite einen RSS Feed auslesen und die angebotenen Veranstaltungen per Php-Script in unseren Veranstaltungekalender über die Datenbank einpfelgen. Dies könnte einmal täglich passieren. Dabei sollten nach Möglichkeit natürlich kein Doubletten erzeugt werden.

    Ich stelle es mir ungefähr so vor:
    nach jedem empfangenen Datensatz aus dem RSS Feed wird eine Anfrage an die eigene Datenbank gesendet, die nach Datum, Uhrzeit, Titel und Ort sucht. Wenn das Ergebnis NULL zurückliefert, sollen die Daten entsprechend in die Datenbank implementiert werden.

    Wäre dies realisierbar?

    Beste Grüße
    Oli

  8. Sebastian sagt:

    Hallo Oliver,

    natürlich ist dein Vorhaben realisierbar.
    Du musst allerdings das obige Script so anpassen, dass die Inhalte nicht ausgegeben werden, sondern lediglich verarbeitet werden. Vorraussetzung zur Verarbeitung von den einzelnen Datenfeldern Datum, Ort, Titel und Ort ist, dass diese durch ein Trennzeichen im RSS Feed getrennt werden. Ansonsten wird es schwierig.

    Gruß
    Sebastian

  9. [...] Diese Code-Zeilen sind jedoch so einfach und auch genial, dass sie ohne größere Probleme in eigene Projekte eingebaut werden können. Die Funktion trägt den Namen getRssFeed und stammt von Sebastian Gollus. [...]

  10. Martin sagt:

    Hi,

    cool … das Script funktioniert prima …

    LG,

    Martin

  11. SVen sagt:

    Hi,
    klappt super. Vielen Dank. Ich bin mit diesen Sachen nicht so bewandert, konnte Dein Script aber ohne Schwierigkeiten einbinden. Toll das es noch Menschen gibt die Ihr KnowHow weitergeben.
    Mach weiter so.
    Gruß
    Sven

  12. Anika Kurth sagt:

    Hallo,

    sehr tolles skipt!
    Hab ich auch die Möglichkeit, die Formatierung des Beitrages mit zu übernehmen? Also die <br /> und die Farben etc ..

  13. Sebastian sagt:

    Hallo Anika,
    welche Formatierungen von welchem Beitrag meinst du? Zeilenumbrüche werden, sofern im Feed vorhanden, natürlich mit ausgegeben.

  14. Andre sagt:

    Hallo,
    Das Script ist schon Klasse.
    Auf meinem Rechner mit Apache klappt das auch wunderbar, lade ich das auf den externen Server bekomme ich aber die Meldung "Warning: implode() [function.implode]: Invalid arguments passed in…" angezeigt und ich habe Momentan kein Plan was das soll, vielleicht kannst du mir ja weiterhelfen?

    gruß
    Andre

  15. Sebastian sagt:

    Hallo Andre,
    wenn du jetzt noch den Rest der Fehlermeldung posten könntest, könnte ich dir eventuell weiterhelfen ;-)
    Grundsätzlich kann es aber sein, dass (ich nehme mal an, du meinst deinen Funpic Server) der Server Einschränkungen in der Verwendung von PHP hat. Eventuell gibt dir aber auch dein Apache Server nicht alle Fehlermeldungen aus –> error_reporting(E_ALL);
    Am besten mal die ganze Fehlermeldung angeben und die Zeile im Script, die die Fehlermeldung erzeugt.

    Gruß
    Sebastian

  16. Andre sagt:

    Danke erstmal für die schnelle Antwort.
    Wahrscheinlich hat Funpic Einschränkungen, so etwas dachte ich mir schon, naja…
    hier mal die komplette Fehlermeldung und Scriptzeile:
    "Warning: implode() [function.implode]: Invalid arguments passed in /usr/export/www/vhosts/funnetwork/hosting/barand3/news/reader_function.php on line 4"
    $data = @file($rssfeed);
    $datings = implode ("", $data);

    gruß
    Andre

  17. Sebastian sagt:

    Hallo Andre,
    mal abgesehen davon, dass du aus $data $datings gemacht hast, ist alles OK. Probiere doch mal einen anderen Webserver aus.

    Gruß
    Sebastian

  18. Andre sagt:

    ja werd mich mal auf die Suche nach einem anderen Webserver begeben.

    Trotzdem vielen Dank

    gruß
    Andre

  19. Kevin sagt:

    Hi Leute…

    habe nicht soviel Kentnisse über PHP…
    wo und wie muss ich die funktion getRssfeed ?

    wäre euch sehr dankbar..

    danke im voraus..

    lg
    kevin

  20. Sebastian sagt:

    Hallo Kevin,

    einfach das PHP-Script oben herunterladen und wie folgt die Funktion aufrufen:
    getRssfeed("http://www.web-spirit.de/web-spirit.php","web-spirit","auto",3,3);

    Grundkenntnisse in PHP sollten dennoch vorhanden sein, um das Script zu verstehen und sinnvoll anzuwenden.

    Gruß
    Sebastian

  21. jan sagt:

    Moin,
    ich möchte mithilfe Deines Scripts unterschiedliche Feeds auslesen, einige funktionieren einwadnfrei, andere nicht, das Script bricht irgendwann ab.

    Es funktioniert nicht:
    http://sonnenseite.com/index.php?pageID=rssfeed_de
    oder
    http://www.taz.de/1/zukunft/umwelt/rss.xml

    hat da wer nen Tip?

  22. Sebastian sagt:

    Hallo Jan,
    das Script bricht bei mir zwar nicht ab aber ich hatte einen anderen Bug gefunden, der bei dem TAZ Feed auftrat.
    Bitte nutze die neue Version 1.0.200903 und rufe die Feeds wie folgt auf:
    getRssfeed("http://sonnenseite.com/index.php?pageID=rssfeed_de","sonnenseite","auto",3,1);
    getRssfeed("http://www.taz.de/1/zukunft/umwelt/rss.xml","taz","auto",3,1);

    Ich habe die Feeds der Demoseite hinzugefügt (oben verlinkt). Bei mir funktioniert es.

    Gruß
    Sebastian

  23. Hallo Sebastian,

    danke für dein schönes Script. Da ich beim Twitter-RSS (den ich auslesen möchte) ziemliche Ladezeiten habe, wollte ich mich erkundigen, wann du deine Caching-Variante veröffentlichst?

    lg
    Tom

  24. Sebastian sagt:

    Hallo Tom,

    das »Caching-Script« ist bei mir bereits im Einsatz. Allerdings nur rudimentär integriert und noch nicht beliebig anpassbar.
    Im Grunde wird der RSS-Feed nur in bestimmten Zeitintervallen neu ausgelesen. Der Zeitstempel, sowie die Inhalte werden in einer Datenbank gespeichert. »Abgelaufene« Inhalte werden gelöscht.

    magpieRSS ist eine OpenSource-Lösung, die ebenfalls RSS-Feeds ausliest und auch cached. Allerdings benötigt das Programm keine Datenbank.

    Da ich momentan in Arbeit ersticke, habe ich für meine eigenen Projekte relativ wenig Zeit, sodass ich leider nicht sagen kann, wann ich mein Update veröffentlichen kann.

    Da du WordPress benutzt, kannst du auch sicherlich das ein oder andere Twitter Plugin finden, das deinen Ansprüchen genügt.

  25. Kevin sagt:

    Hallo,
    wie bekomme ich das Script besser an das Stylesheet meiner Seite angepasst? Die Angaben bei class= werden schlichtweg ignoriert und auch manuelle Manipulationen des Scripten brachten mir keinen Erfolg ein.
    Was muss getan werden um das sich das Script an
    a.link:link usw.
    anpasst?
    Auch bekomme habe ich das Problem mit dem Zeichensatz. Umlaute (Ä, Ü und Ö) werden nicht dargestellt

    Gruss

  26. Sebastian sagt:

    per CSS machst du es am besten so:
    div.rssfeed_DEIN-FEED a { }
    div.rssfeed_DEIN-FEED a:hover { }
    etc.

    Das Umlaut-Problem wird in den ersten vier Kommentaren gelöst. Falls es bei dir nicht funktioniert, nenne doch bitte deine Website und den Funktionsaufruf.

  27. Kevin sagt:

    Klasse,
    vielen Dank für den schnellen Support. Das mit dem CSS hätte ich auch selber drauf kommen können.
    Mit dem Zeichensatz war ich etwas verwirrt vorin, entgegen meinen Erwartungen, funktioniert utf-8 bei mir. Hatte das nicht Probiert.

    Besten dank

    P.S. Das ist eine Interne Seite, kann ich leider nicht zur Schau stellen.

    Gruss

  28. Manuel sagt:

    Hallo,

    vielen Dank für das tolle Script, habe es sofort zum laufen bekommen. Jetzt habe ich allerdings eine Frage: im Gegensatz zum Heise-Beispiel, ist das RSS was ich auslesen möchte anders strukturiert. Dort liegt <ITEM> innerhalb von <CHANNEL>. Beispiel: http://rv-journalyse.blogspot.com/feeds/posts/default. Wie kann ich das Script dazu bewegen, auch innerhalb von CHANNEL nach Item zu suchen? Stand jetzt bekomme ich kein Ergebnis,

    Herzliche Grüße
    Manuel

  29. Sebastian sagt:

    Hallo Manuel,

    ich habe das Script ein wenig angepasst. Schau, dass du die Version 1.0.200905 benutzt (Download oben). In der Demo habe ich deinen angegebenen Feed mal eingebunden.

    Gruß
    Sebastian

  30. Bernd sagt:

    Hi hab das mal auf http://www.fellbach-cheerleadersquads.de/home/modules/rssfeed.php eingebaut und habe damit Probleme (am besten kurz drauf gucken). Ich suche gerade nach einer Alternative um die Youtube Videos eines bestimmten Users in meine Seite einzubinden.

    Vielleicht kannst Du mir ja – am besten per mail . weiterhelfen.
    LG Bernd

  31. Sebastian sagt:

    Hallo Bernd,
    bitte schicke mir doch mal deinen Code inkl. dem Link zum verwendeten RSS Feed von Youtube. Ich werde dann die Tage mal schauen, woran der Fehler liegt. Habe momentan leider wenig Zeit.

    Gruß
    Sebastian

  32. sanoba sagt:

    Hab dein Script auch mal bei mir ausprobiert. Gefällt mir sehr gut. Danke dafür.

  33. Jens sagt:

    Besten Dank für das Script – funktioniert bestens und hat mir eine Menge Arbeit gespart.

    Einen kleinen Korrekturhinweis habe ich noch beizutragen. In die foreach-Schleife sollte noch ein
    $link = preg_replace(‘/<![CDATA[(.+)]]>/Uism’, ‘$1′, $link); eingefügt werden. Einige Feeds liefern nämlich auch ihre Links in einem CDATA-Bereich aus, so zB die von taz.de.

    Gruß, Jens.

  34. Sabine sagt:

    Na ja bei mir läuft das nicht so sauber.

    Die Ausgabe zeigt mir dauernd am Ende folgendes

    Die Kommunikation mit den Besuchern der eigenen Website ist für viele Betreiber essentiell. Aus diesem Grund werden Kontaktformulare verwendet. Auch für eine Sign-Up-Routine ist ein Formular notwendig. Bei der Gestaltung der Formulare können verschiedene Strategien angewendet werden, um gute Conversions zu erreichen.<div class="feedflare"> <a href="http://feeds.feedburner.com/~f/Web-Spirit_Webdesign-Voerde?a=NrLyJNRA"><img src="http://feeds.feedburner.com/~f/Web-Spirit_Webdesign-Voerde?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Web-Spirit_Webdesign-Voerde?a=jzMS20GV"><img src="http://feeds.feedburner.com/~f/Web-Spirit_Webdesign-Voerde?d=41" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/Web-Spirit_Webdesign-Voerde/~4/8y2WALyOnds" height="1" width="1"/>

    1:1 das den Code in eine rsstest.php reingeworfen.
    Und ja – keine php Kentnisse da .

    Gruss Sabine

  35. Gerhard sagt:

    Bei wird auch die gesamte Auszeichnung mit ausgegeben. Ist recht unschön.

  36. Jens sagt:

    @Sabine: Bist Du sicher, daß Du auch einen RSS-Feed und nicht irgendetwas anderes abzurufen versuchst? Deine PHP-Seite sollte etwa so aussehen:

    <html>
    <?php

    function getRssfeed($rssfeed, $cssclass="", $encode="no", $anzahl=10, $mode=0)
    {
    // Hier gehört die komplette, oben verlinkte Methode hin,
    // siehe "Das PHP-Script als Download".
    }

    echo "<strong>Heise Newsticker</strong>";
    getRssfeed("http://www.heise.de/newsticker/heise.rdf","","auto",5,0);
    echo "<br>";

    ?>
    </html>

    Das zeigt eine Seite mit den obersten 5 Zeilen des Heise-Tickers.

    Gruß, Jens.

  37. Jens sagt:

    Kleiner Nachtrag: entferne alle Backslashes aus den 3 Zeilen vor dem ?> Die gehören nicht in den PHP-Code, die hat das Kommentarscript eingefügt.

    Gruß, Jens.

  38. Sebastian sagt:

    Ich habe den Übeltäter gefunden.
    Das Problem liegt daran, dass in den RSS Feed über Feedburner noch "email this" und "add to del.icio.us" eingebaut sind.

    Nutze doch einfach mal einen anderen RSS Feed, z. B. den von Heise. Da sollte das Problem nicht mehr auftreten.

    Gruß
    Sebastian

  39. Gerhard sagt:

    Ich versuche den RSS-Feed der Meisterschützen (http://meisterschuetzen.net/index.php?page=Feed&type=RSS2) einzubinden. Auch dort werden in den Beiträgen alle Auszeichnungen mit ausgegeben.

  40. Sebastian sagt:

    Hallo Gerhard,

    deinen RSS Feed habe ich mal testweise in die Demo eingebunden. Damit gibt es keine Probleme (siehe: http://www.web-spirit.de/rssfeed.php).

    Wer den Web-Spirit Feed ohne den Feedburner-Code einbinden möchte, kann gerne folgende URL verwenden:
    http://www.web-spirit.de/web-spirit.php

    Beste Grüße
    Sebastian

  41. Gerhard sagt:

    Hallo Sebastian,

    danke. Dann werde ich gleich mal bei mir auf die Fehlersuche gehen.

    Beste Grüße

    Gerhard

  42. Andi sagt:

    hallo!

    ich versuche folgenden rss auszulesen: http://rss.feedsportal.com/c/685/f/434709/index.rss

    leider bekomme ich ein ergebnis, dass so aussieht:

    http://wincar.at/test.php

    es werden also keine bilder oder formatierungen ausgegeben. was mach ich falsch? hab schon sämtliche methoden (0,1,2,3… und charset..) versucht, immer das gleiche ergebnis. gilt leider auch für andere rss die ich probiert habe.

  43. Sebastian sagt:

    Ändere doch bitte
    echo $description[1];
    in
    echo html_entity_decode($description[1],ENT_QUOTES);
    dann funktioniert es mit:
    getRssfeed("http://rss.feedsportal.com/c/685/f/434709/index.rss","autosport","no",3,3);

    Allerdings nicht ganz sauber. Das Script ist eigentlich nicht für HTML-Code in den Einträgen ausgelegt.

  44. Andi sagt:

    danke für die hilfe!
    gegen die "fehlenden" Umlaute kann ich wahrscheinlich nichts machen, oder?

  45. Sebastian sagt:

    Du kannst das CHARSET deiner Website anpassen oder hier eins mitgeben:
    echo html_entity_decode($description[1], ENT_QUOTES, charset);

    wobei du charset durch das entsprechende ersetzen musst, z. B. ‘UTF-8′.
    Referenz: html_entity_decode()

  46. Erich sagt:

    Hallo Sebastian

    Ich glaube das Script ist genau das was ich gesucht habe. Nur leider bringe ich es nicht zum laufen. Ich habe das Script 1:1 übernommen, als test.php abgespeichert und auf den Server geladen. Ich bekomme jedoch nur eine leer Seite (keine Fehlermeldung). Wäre toll wenn du mir da irgendwie weiterhelfen könntest.

    Gruss, Erich

  47. Sebastian sagt:

    Welchen RSS Feed ließt du denn aus?
    Probiers mal hiermit: getRssfeed("http://www.web-spirit.de/web-spirit.php","web-spirit","auto",3,3);
    Wenn es dann nicht funktioniert, einfach nochmal melden.

  48. Erich sagt:

    Hallo Sebastian
    Vielen Dank für die Antwort. Genau mit diesem Feed habe ich es probiert. Ich bekomme nur eine leere Seite zu sehen. Ich habe den Funktionsaufruf getRssfeed("http://www.web-spirit.de/web-spirit.php","web-spirit","auto",3,3); gleich unterhalb der Funktion eingebaut – ist doch korrekt… oder?

  49. Sebastian sagt:

    Das Script funktioniert einwandfrei. Der Fehler muss bei deinem Server oder deiner Datei liegen.
    Füge deiner Datei mal folgende Zeile im PHP Code hinzu:

    error_reporting(E_ALL);

    Eventuell spuckt deine Datei dann eine Fehlermeldung aus. Du kannst mir deine Datei auch gerne mal per E-Mail schicken, vielleicht steckt der Fehler im Detail.

  50. Daniel sagt:

    Hallo,
    erstmal vielen Dank für deine Arbeit, das spart auch mir ne Menge Arbeit – feine Sache, das Script! :)
    ich binde auf http://loseschatz.de die News aus meiner anderen Seite http://linknews.de ein, nur die Überschriften. Allerdings sind in diesen Überschriften manchmal Anführungszeichen " enthalten, und die werden in der Feed-Anzeige zur Zeit nicht korrekt umgewandelt..
    kann ich da noch etwas ändern, um das zu erreichen?
    Schöne Tage euch allen :)
    Daniel

  51. Sebastian sagt:

    Einfach den Parameter $encode ändern. $encode = "no" sollte helfen.
    Ansonsten mal die ersten Kommentare oben lesen. Da wurde auf das Thema bereits eingegangen.

  52. Boris sagt:

    Hallo!

    Der RSSFeeder ist Spitze! Vielen Dank dafür. Eine Frage hätte ich noch: wenn ich einen WordPress Feed auslesen möchte, werden da auch Daten zum Autor u.ä. übergeben. Könnte man diese irgendwie auch mitausgeben lassen?

  53. Sebastian sagt:

    Ja, den Autor kannst du auch herausfiltern, dieser wird im Tag <dc:creator>AUTOR</dc:creator> angegeben. Du kannst das Script ja so anpassen, dass es diesen Tag parsed.

  54. Meischi sagt:

    Hallo,

    habe auch das problem mit den Umlauten:

    Habe auch schon das ausprobiert was bei den ersten 4 Kommentaren steht… aber er ändert sich nichts…

    funktionionsaufruf is jetzt:
    getRssfeed("http://pro-unterach.blogspot.com/feeds/posts/default","","no",1,2);

    kannst du mir da helfen??? weiß nicht warum es nicht gehen sollte!
    DANKE

    Jetzt ist mir noch aufgefallen, dass nicht der ganze Text des RSS-Feeds ausgegeben wird.
    kann man die länge irgendwo einstellen… oder sollte eigentlich alles ausgelessen werden?

  55. Sebastian sagt:

    Hallo Meischi,

    da du in deinen Artikeln keine Umlaute verwendest, kann es eigentlich gar nicht zu Problemen mit Umlauten kommen. Testweise habe ich mal deinen Kommentar-Feed mit dem Script ausgelesen. Mit Umlauten gibt es da keine Probleme.
    Wenn du dir deinen RSS-Feed mal anschaust, wirst du feststellen, dass in diesem der Text bereits gekürzt ist. Das ist eine Einstellung deines Blog-Hosters, nicht eine des Scripts.

    Gruß
    Sebastian

  56. Meischi sagt:

    Hallo,

    es gibt nun keine Umaute mehr da der Beitrag umgeschrieben wurde…
    werden jedoch Umlaute übergeben so werden diese nicht richtig angezeigt.

    was mich gewundert hat, dass auf manchen seiten mit UTF-8 die Umlaute richtig dargestellt werden und bei anderen auf einmal nicht mehr… woran kann das liegen?

    kann ich mit deinem script irgendwie die länge des feeds bestimmten?
    hab die vorgabe ca. 5 zeilen auszugeben und dann mit "…" abzuschließen.

    lg meischi

  57. Sebastian sagt:

    Du kannst substr() verwenden, wenn du einen String auf eine bestimmte Zeichenlänge kürzen möchtest. In Verwendung mit preg_replace() kannst du einen String kürzen aber ganze Wörter erhalten:

    preg_replace("/[^ ]*$/", "", substr($TEXT, 0, 300));

    Im Script einfach die Ausgabe von $description[1] anpassen. Anstatt der 300 natürlich dann deinen individuellen Wert verwenden.

    Bezüglich deines Umlaute-Problems, gib doch einfach mal einen Link zur Seite, auf der man sieht, dass es nicht funktioniert.

  58. Meischi sagt:

    Wo bei ich das nun ein?

    preg_replace(\"/[^ ]*$/\", \"\", substr($TEXT, 0, 300));

    statt $TEXT kommt dann $description[1] ?

    ganz zum schluss wird ja
    echo $description[1]; ausgeführt, soll ich hier das ändern oder?

    kann dir leider keinen link zeigen wo es nicht geht.
    hab jetzt auf dieser Homepage http://www.pro-unterach.at alle umlaute mittels "ä" usw. geändert damit sie richtig angezeigt werden!

    beim RssFeed sind nun alle Umlaute auf "oe", oder "ue" umgeändert worden um es lesbar zu machen.
    Sollte aber doch bald mit "ö" und so funktionieren!

    komischerweise gehts aber auf anderen seiten wo utf-8 ist einwandfrei … da ist im Quellcode im Text ein "ö" und es wird auch ein "ö" angezeigt….

    lg
    meischi

  59. Sebastian sagt:

    Genau so einbauen, wie du es beschrieben hast.

    Ich habe mir mal den Head-Bereich von deiner Website angeschaut. Dort nutzt du aber gar nicht UTF-8, sondern ISO-8859-1. Daher wirst du mit deinem Funktionsaufruf wie oben nicht dein gewünschtes Ergebnis erreichen können.
    Entweder änderst du die Encodierung im Script oder das Charset im Header.

    getRssfeed(&quot;http://pro-unterach.blogspot.com/feeds/posts/default&quot;,&quot;&quot;,&quot;<strong>UTF-8</strong>&quot;,1,2);
  60. Meischi sagt:

    So hab diesen Code:

    if($mode == 2 || $mode == 3 && ($description[1]!="" && $description[1]!=" "))
    {
    $description[1] = preg_replace("[^ ]*$", "", substr($description[1], 0, 100));
    echo "<p class="description">n";
    if($encode != "no")
    {echo htmlentities($description[1],ENT_QUOTES,$encoding)."n";}
    else
    {echo $description[1];}
    echo "…</p>n";
    }
    if ($anzahl– <= 1) break;
    }
    echo "</div>nn";
    }

    getRssfeed("http://pro-unterach.blogspot.com/feeds/posts/default","feed","UTF-8",1,2);
    ?>

    aber es wird nun KEINE description angezeigt.
    Was mach ich da falsch… steh da grad sehr auf der leitung!
    lg

  61. Sebastian sagt:

    Bei $description[1] = preg_replace("[^ ]*$", "", substr($description[1], 0, 100)); fehlen noch die Slashes. Richtig ist:

    $description[1] = preg_replace("/[^ ]*$/", "", substr($description[1], 0, 100));
  62. Meischi sagt:

    SUPER!!!!!

    echt genial!!

    jetz werd ich noch schaun, dass ich ein paar umlaute vom feed bekomme.. dann kann ich dir mein problem mit den umlauten noch zeigen!!!

    schon mal jetzt!
    BESTEN DANK!!!
    echt super, wenn man so rasche antworten bekommt!!!!

  63. Max sagt:

    Hi, ich habs mal in meinem Blog eingebaut …. saugeil. Funktioniert prima.

  64. McPeters sagt:

    Hi,
    die Beispieldatei hat prima funktioniert. Mit meinen Feeds funktioniert es leider nicht. Ich habe den Feed-Link jeweils herauskopiert und eingesetzt. In meinem Feed-Reader funktionieren diese einwandfrei, wenn ich sie in der Funktion einsetze leider nicht. Mir geht es vor allem um folgenden Feed:

    feed://www.save.tv/stv/s/obj/rss/rsShow.cfm?sRSSid=85955E4402765EA794EE3AAC09E86531&sFeedtoken=HLserie

    Wo liegt der Fehler?

    Vielen Dank und viele Grüße

  65. Sebastian sagt:

    Mit feed:// kommst du leider nicht weit, probiere es mal mit einem anderen Protokoll… http:// !

    http://www.save.tv/stv/s/obj/rss/rsShow.cfm?sRSSid=85955E4402765EA794EE3AAC09E86531&sFeedtoken=HLserie
  66. ulf sagt:

    super script. funktioniert wie die eins, aber leider nur bei mir lokal. kopiere ich die seite auf den webserver bekomme ich folgende fehlermeldung:

    Warning: implode() [function.implode]: Bad arguments. in /usr/home/meineurl.com/web/newsletter/library/rss.php on line 26

    Warning: Invalid argument supplied for foreach() in /usr/home/meineurl.com/web/newsletter/library/rss.php on line 88

  67. Sebastian sagt:

    Hallo Ulf,

    leider kann ich dir da aus der Ferne nicht weiterhelfen.
    Welchen RSS-Feed ließt du denn aus?
    Ist allow_url_fopen = 1 (in der php.ini)?

  68. Peter sagt:

    Hallo,

    ich würde gern zu jedem item Datum und – ganz wichtig – Uhrzeit ausgeben, bekomme das aber nicht hin.

    Bei mir wird mit

    $datum = date('d.m.Y h:i:s', strtotime((string) $data->pubDate));

    nur immer das heutige Datum, Punkt 12 Uhr ausgegeben.

    Wie bekomm ich das hin – und an welcher Stelle des Scripts muss ich das einbauen?

    Danke für die Hilfe
    Peter

  69. Sebastian sagt:

    Das Auslesen mit obiger Funktion berücksichtigt nicht das Datum im RSS-Feed. Daher müsstest du selber erst noch das Datum auslesen und es in ein Array stecken.

  70. Philipp sagt:

    Hi, danke erstmal super script! nur habe ich jetzt ein Problem. Ich will einen Twitter Feed auslesen und die Daten in eine Datenbank schreiben. Kein ding eigentlich aber in twitter wird immer der Username vorrangesetzt.

    also z.B. "Philipp : blabla ich wiss nicht weiter"

    wie kann ich dem script sagen, dass es die ersten 10 zeichen ignorieren soll, damit ich nicht immer den Username habe, den ich nicht brauche für die Datenbank!

  71. Sebastian sagt:

    Wenn es immer derselbe Username ist, kannst du mit str_replace() deinen Username entfernen.

    $string = str_replace("Philipp: ", "", $string);
  72. Alexander sagt:

    Hallo,

    vielen Dank auf jeden Fall für das Script, dass nach einigen Anpassungen (hier bereits benannte Probleme mit "allow_url_fopen" sowie Umlaute) sauber schnurrt.

    Nun kämpfe ich mit "pubDate". In der Original-Datei wie auch im ausgelesenen String steht völlig korrekt z.B.:

    "Fri, 05 Mar 2010 13:33:30 +0100"

    Betrachtet man die Original-Datei mit einem ‘normalen’ Feed-Reader, wird das Datum schön treudeutsch wie folgt angezeigt:

    "Freitag, 5. März 2010 13:33"

    So hätte ich es über das Script natürlich auch gern, aber es kommt nur der Original-String heraus – eben jenes "Fri, 05 Mar 2010 13:33:30 +0100".

    Beim Durchstöbern des Netzes habe ich keine wirkliche Lösung für das Problem gefunden. Und ich kann mir nicht vorstellen, dass man den String dafür wirklich Stück für Stück auseinanderbauen und neu zusammensetzen muss. Ich befürchte also, dass das Thema so banal ist, dass dieser Beitrag hier vor Dummheit förmlich brüllt. Aber wenn man nicht weiss, wonach man suchen muss, bleibt einem nur das Risiko der Blamage. Hast Du / hat jemand einen Tip?

    Vielen Dank und ebensolche Grüße

    DAU Alexander

  73. Dirk sagt:

    Vielen Dank für das Script! Ist echt cool.

    Allerdings funktioniert es nicht so richtig mit.
    getRssfeed("http://search.twitter.com/search.atom?lang=de&q=berlin","","no",10,0);

    Ich würde gerne den 2. Eintrag verwenden ( also nicht als gesamter Link). Es sollen die einzelnen Links angezeigt werden. Kann mir da jemand helfen ? Wär echt klasse !!

  74. Sebastian sagt:

    Hallo Dirk,

    ist mit dem Script oben so ohne weiteres leider nicht möglich. Da müsstest du individuelle Änderungen vornehmen.
    Falls du mit WordPress arbeitest, findest sicher das ein andere eine geeignete Plugin, das dir weiterhelfen kann.
    Ansonsten einfach mal nach »twitter rss auslesen« suchen.

  75. Dirk sagt:

    Also ich konnte es jetzt ein wenig anpassen. :) Trotzdem Danke!
    Nein, mach kein WordPress und man findet bei »twitter rss auslesen« als erstes Deine Seite. Der Rest ist Schrott :)
    Grüße

  76. Bondscoach sagt:

    Hallo Sebastian,
    nettes Script hast du da geschrieben.
    Ich versuche seit einiger Zeit, die Ausgabe um einen weiteren Punkt zu erweitern.
    Leider gerate ich dabei an meine Grenzen.
    Und zwar gibt es in meinem Feed noch einen Knotennamens namens URL. Den möchte ich gerne anzeigen.
    Dafür habe ich folgende Zeilen eingefügt:

    if($atom == 0)
    {
    preg_match("/<url>(.*)<\/url>/Uism", $item, $url);
    }

    $url = preg_replace(‘/<!\[CDATA\[(.+)\]\]>/Uism’, ‘$1′, $url);

    sowie zur Ausgabe ein echo:

    echo $url;

    Der ausgegebene Text sieht aber leider nur so aus: "Array"

    Kannst du mir vielleicht helfen?

  77. Sebastian sagt:

    Deine Variable $url ist ganz einfach ein Array.
    Mit print_r($url); kannst du dir die den Arrayaufbau anschauen und sehen, in welchem Feld deine Informationen stehen, die du ausgeben möchtest.

    Gruß
    Sebastian

  78. Bondscoach sagt:

    Danke!
    Eigentlich hätte ich das auch von deinem Script ableiten können, später ist man immer schlauer …

  79. ferdinand sagt:

    hii,

    hat jemand zufällig ein modifiziertes script was auch das datum und die uhrzeit des feeds ausgibt bzw. die umrechnung in Tagen und stunden?? tanx ferdinand_

  80. Tom sagt:

    Hallo Sebastian,
    ich finde das Script klasse. Es ist super einfach anzuwenden.
    Ich möchte gern einen Feed als Übersicht darstellen. Das kann z.B. nur die Headline oder die Headline und der angeteaserte Text sein. Dann soll ein Link folgen mit "mehr". Jetzt möchte ich aber nicht auf den unter LINK im RSS stehenden Link verweisen, sondern diesen einen Beitrag aus dem Feed extrahiert darstellen.
    Hast du eine Idee, ob und wie ich das möglichst ohne db erreichen kann.

    Kannst du mir weiterhelfen?

    Gruß
    Tom

  81. Peter sagt:

    Hallo,

    Danke für die Antwort bezüglich Datum / Uhrzeit (Post 68/69).

    Kannst Du mir denn nochmal mit dem entsprechenden Codeschnipsel helfen, wie ich das Datum und die Uhrzeit in ein Array bekomme?

    Danke schonmal,

    Grüße
    Peter

  82. Sebastian sagt:
    preg_match("/<pubDate>(.+)</pubDate>/Uism", $item, $pubDate);
    $pubDate = preg_replace('/<![CDATA[(.+)]]>/Uism', '$1', $pubDate);

    in $pubDate[1] hast du dann dein Datum.

  83. Peter sagt:

    Hallo,

    herzlichen Dank! Habe es eingeabeitet und es klappt!

  84. Jan sagt:

    Hmm vllt kann mir ja jemand helfen.

    was bedeutet im Kontext:
    definierten Gruppe? und für was steht dieses (.+).

    Danke

  85. Sebastian sagt:

    Das ist ein Bestandteil von Regulären Ausdrücken.
    Wikipedia hilft dir weiter: http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

  86. Michael sagt:

    hallo,
    gibt es die caching script variante schon fertig?

    grüße
    michael

  87. Mario sagt:

    Das Script verursacht bei mir noch einen kleinen Fehler bei Bindestrichen – ich bekomme statt des Bindestrichs nur den Code ” angezeigt…any suggestions?

  88. Marius M sagt:

    Hallo,
    erstmal vielen Dank für das tolle Skript =)
    Und dann habe ich leider noch damit ein kleines Problem…
    Beim Aufruf der Seite
    a. lädt die Seite nur bis zum ersten Funktionsaufruf <?php getRssfeed("URL","","auto",4,0); ?>
    oder
    b. zeigt anstelle des Feeds:
    Warning: implode() [function.implode]: Invalid arguments passed in /homez.332/dlrgseli/www/index.php on line 24
    Warning: Invalid argument supplied for foreach() in /homez.332/dlrgseli/www/index.php on line 86
    oder
    c. lädt nach längerer Verzögerung die Seite ordnungsgemäß.

    … in diesem Zusammenhang würde mich Caching ungemein interessieren.
    Oder ein Lösungsvorschlag wäre auch genial =)

    Info:

    Es werden 2 Feeds ausgelesen:
    Feed 1: http://bit.ly/fV3uz9
    Feed 2: http://bit.ly/hKzg1u

    URL: http://bit.ly/g7YpdJ
    Host: OVH Shared
    PHP5 etc.

    Mit besten Grüßen
    Marius M

  89. Sebastian sagt:

    Fürs Caching einfach die ausgelesenen Inhalte in eine Datenbank schreiben.
    Per Zeitstempel kontrollieren, wann das letzte Mal ausgelesen wurde.
    Erst nach Überschreiten einer gewissen Zeit (z. B. 1 Stunde) das Script erneut ausführen und Datenbank aktualisieren.

  90. PhvK sagt:

    Klasse Arteit!
    Doch leider klappt es nur Teilweise!
    1. Wie kann ich die Bilder zu den Artikeln auslesen und anzeigen?
    2. Wo muss ich den "div"Tag einfügen?
    3. Bei manchen Feeds wird der html Code mitausgegeben, also mit <a href="…
    Wie kann ich das ändern?
    mfG
    PhvK

  91. Malli1302 sagt:

    hi, danke für die schnelle hilfe…echt empfehlenswert !

  92. Hallo – Das wär ja hier genau was ich suchete aber ….
    Also mit dem Facebook Feed scheint das nicht zu klappen:

    getRssfeed("http://www.facebook.com/feeds/page.php?id=109553722417127&format=rss20","FaceFeed","auto",3,3);

    Oder mach ich da was falsch?

    Danke für jeden Tipp

  93. Sebastian sagt:

    Facebook unterbindet das Auslesen der Feeds.

  94. Torsten sagt:

    Das ist genau das, was ich gesucht habe. Ich habe aber doch noch eine Frage, wie muss ich das Script modifizieren, damit die Links in einem neuen Fenster geöffnet werden? Aktuell öffnet sich die entsprechende news bei mir immer im gleichen Fenster.

  95. Torsten sagt:

    Ok – habs selbst hinbekommen:

    echo "<h1><a target="_blank" href="".$channellink[1]."" title="";

    bzw.

    echo "<a target="_blank" href="".$link[1]."" title="";

  96. Torsten sagt:

    @Sebastian: Und heut kam auch Deine E-Mail auf meine Anfrage hin an – vielen Dank, nochmal und Daumen hoch für Deine Mühe!

  97. Ramon sagt:

    Super Script, Danke!

    Ich werde deine Steilvorlage wohl dazu nutzen meine alten SimplePie-Geschichten zu aktualisieren. Natürlich wäre die Cache-Funktion elegant und ich warte gerne auf deine Lösung.

    Einen Vorschlag hätte ich jedoch noch. Ich vermisse neben „title“, „link“ und „description“ vor allem „enclosure“, hast du es zufällig eingeplant?

  98. Ramon sagt:

    Wie gesagt, fehlte mir noch die Einbindung von „enclosure“. Ich habe es kurzfristig mal folgendermaßen gelöst:

    Unter
    preg_match("/<title.*>(.+)</title>/Uism", $item, $title);

    Einfügen:
    preg_match("/<enclosure.*url="(.+)".*/Uism", $item, $enclosure);

    Über
    echo "<p class="link">n";

    Einfügen:
    if($enclosure){
    echo "<img src="".$enclosure[1]."" />";}
    else{echo "kein Bild";}

    Ist ein bisschen schmutzig, aber nachdem man alles schön formatiert hat, passt es schon.

  99. Ramon sagt:

    @Sebastian: Da hat es beim Einfügen den Code zerschossen :( Kannst du ihn korrigieren?

  100. Christian sagt:

    Wo muss ich denn die Daten für das RSS Feed eintragen? Hier an der Stelle?

    function getRssfeed ($rssfeed, $cssclass="", $encode="auto", $anzahl=10, $mode=0)
    {

    Danke im Voraus!

  101. Sebastian sagt:

    Nein! Die Funktion so lassen, wie sie ist. Unterhalb oder oberhalb dieser Funktion einen Funktionsaufruf starten: getRssfeed("http://www.web-spirit.de/web-spirit.xml","web-spirit","auto",3,3);

  102. Karlheinz Laur sagt:

    Hallo,

    kann ich irgendwie verhindern, dass der Feedtitel mit aufgelistet wird, bzw. eine eigene Überschrift vergeben?

    Danke!

    Herzlichst
    KH Laur

  103. Sebastian sagt:

    Einfach für den Parameter $mode im Funktionsaufruf 0 oder 2 angeben.
    Wird aber auch am Anfang des Tutorials kurz erläutert, z. B.:
    getRssfeed("http://www.web-spirit.de/web-spirit.xml","web-spirit","auto",3,2);

  104. Jamel sagt:

    Vielen Dank für das hervorragende PHP-Script.
    Musste für die Uni einen ähnlichen schreiben, hab mir also deinen als Vorlage genommen und arbeite im Moment daran die Items, Channels und Links in die Datenbank zu speichern und nicht bei jedem Seitenaufruf erneut zu laden.
    Vielleicht krieg ichs ja noch hin.

    Greetz

  105. Tom sagt:

    Hallo und danke für das script!

    Hat auf anhieb geklappt nur bestimmte Zeichen werden nicht angezeigt.
    zB. &# 8220; &# 8221; und &# 8211;
    Hab schon alle encode Varianten durchprobiert, utf-8 bzw. auto funktionieren am Besten.
    Dennoch werden diese Anführungszeichen und Bindestriche eben w.o. dargestellt.
    Umlaute und andere sonst problematische Zeichen werden korrekt dargestellt.
    In meinem RSS Reader wird es korrekt dargestellt.
    Der Feed ist auf einem Facebook Tab eingebunden. FB verwendet utf-8.
    Hat wer eine Idee?
    Vielen Dank
    Tom

  106. Tom sagt:

    PS:
    konnte mein Problem noch immer nicht lösen, hab aber noch ein paar Infos:
    Also alle Sachen werden bei mir utf-8 codiert
    das problem scheint im script zu liegen und nur die unicode zeichen zu betreffen
    im feed wird ein zeichen original zb. so ausgegeben: – (&# 8211; leerzeichen zur sicherheit)
    vom script wird es aber so zurückgegeben: &#8211; (& ;#8211; leerzeichen zur sicherheit)
    Hab jetzt viel recherchiert und auch den feed validiert, der ist korrekt und utf-8, was ich im script auch angegeben hab. :(
    hier die adresse, wo der feed eingebaut ist:
    https://www.facebook.com/guterstoff?sk=app_233560143365910

  107. Alex sagt:

    Hallo zusammen, also ich habe das alles nun in einer html Datei zusammengefasst und es funktioniert nciht wirklich, kann mir evtl jemand sagen was falsch ist?

    Weiterer Inhalt wurde an dieser Stelle entfernt.
  108. Sebastian sagt:

    Hallo Alex,

    vielen Dank für deine Anfrage. Bitte siehe in Zukunft aber davon ab, den kompletten Quelltext hier zu posten.
    Viel wichtiger wäre, zu wissen, was nicht funktioniert. Sprich: welcher Fehler tritt auf?

  109. james sagt:

    Hallo Sebastian,
    ich versuche meinen blog von blogspot mit deinem code auszulesen, aber irgendwie gelingt es mir nicht. den von pro-unterlach liest dein code problemlos aus, jedoch meinen "itsjustbeta.blogspot.com" funktioniert leider nicht. Es wird nur die überschrift gelesen, nicht jedoch der inhalt des blogs. Was mach ich falsch?

  110. Karlo sagt:

    Dies RSS-PHP-Routinen sind (in etwas abgewandelter Form) bei mir seit längerem auf der Seite (www.vandergucht.de). Sie funktionieren tadellos.
    Besten Dank!

  111. Sebastian sagt:

    Hallo James,

    bei mir funktioniert es:
    getRssfeed("http://itsjustbeta.blogspot.com/feeds/posts/default?alt=atom","itsjustbeta","auto",3,3);

  112. Frank sagt:

    Besten Dank ! Wieder einmal eins ehr gut geschriebener Beitrag zum Thema PHP !

  113. Nils sagt:

    Auch von mir ein Danke, genau sowas habe ich gesucht!

    Dennoch eine Frage:
    Wie und wo passe ich den Zeilenabstand an?!
    Ich lese von meinen WordPress-Blog nur die Überschriften aus; allerdings haben die einen Zeilenabstand von rund 3-4 Zeilen?!

    Und in der Länge würde ich die Überschriften auch gerne kürzen bzw. einen Zeilenumbruch einbauen?!

    Könnte mir da jemand behilflich sein?!

    DANKE!!

    Nils

  114. Nils sagt:

    Könnt ihr mir ggf. auch dabei nochmal helfen:

    preg_match("/<pubDate>(.+)</pubDate>/Uism", $item, $pubDate);
    $pubDate = preg_replace(‘/<![CDATA[(.+)]]>/Uism’, ‘$1′, $pubDate);

    Wo muss ich das wie in das Script einbauen, damit das mit dem Datum etc. angezeigt wird?!

    DANKE!
    Nils

  115. Sebastian sagt:

    Zeilenabstand (padding, margin) und Zeilendurchschuss (line-height) kannst du mit CSS anpassen.

  116. Habe gestern das Script gefunden und wg. großen Gefallens auch für eines meiner Projekte verwendet. Konnte aber auch aus den Anmerkungen in den Kommentaren keine Möglichkeit für mich erschließen, aus dem englisch formatierten Datum meines RSS-Feeds ein deutsches Datum zu generieren. Gut, wenn man da einen Kundigen in der Verwandschaft hat… alle Kudos für die PHP-Zeilen gehen an Dr. Hagen Höpfner (http://www.hoepfner.ws). Ist nur für RSS, nicht für ATOM erweitert. Genehmigung zum Posten hier hat mir Hagen erteilt – dürft ihr gerne weiterverwenden. Immer natürlich nett, wenn ihr den Dank auch mitnehmt… :-)

    Zu ergänzen sind in der Datei:

    if($atom == 0)
    {
    	preg_match("/<pubDate>(.*)</pubDate>/Uism", $item, $datum); // Datum
    }
    //--
    //(nach // Titel, Link und Beschreibung der Items innerhalb der Schleife)sowie:
    
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') $localeCode = 'ge'; else $localeCode = 'de_DE';  // Deutsche Monatsnamen!
    $typ = setlocale(LC_TIME,$localeCode); // Sprache setzen
    $datum = preg_replace('/<![CDATA[(.+)]]>/Uism', '$1', $datum); // Datum aus dem Tag parsen
    $datum = strftime ("%A, %d. %B %Y", strtotime($datum[1])); // Datum Formatieren siehe http://www.php.net/manual/de/function.strftime.php


    direkt im Anschluss an die preg_replace-Befehle.

    Datumsaufruf dann an gewünschter Stelle einfach per:

    echo '<p class="date">'.$datum.'</p>';

    Gibt das Datum als "Wochentag, XX. Monatsname 20XX" aus – Anpassung (bspw. zusätzliche Uhrzeit) in der Funktion strftime soweit ich es verstehe. Formatierung der Datumsanzeige dann in der CSS über p.date.

    Denke mal, dass das dem ein oder anderem ein wenig weiterhelfen wird. Viel Spaß und herzlichen Dank für kostenlose, gut erläuterte Scripte wie dieses. ;-)

  117. Asker sagt:

    Super Script !

    Habe aber ein kleines problem.
    Ich möchte gerne folgender Feed auf meiner HP anzeigen lassen:
    http://formel1.feedsportal.com/c/34709/f/638518/index.rss

    Das ganze wird auch angezeigt, nur bei dem "E-mail this" und "Bookmark" Icon wird nur der HTML-Code angezeigt. Es werden also keine Icons angezeigt.

    Was muss ich ändern damit auch der HTML-Code korrekt angezeigt bzw. ausgegeben wird ?

    MfG

  118. Judith sagt:

    Super Script, nur warum funktioniert nicht jede url?

    zb klappts nicht bei http://www.ooe.spoe.at/rss.xml

    Was mache ich falsch?

    Wäre lieb, wenn mir wer helfen könnte. Danke

  119. Chris sagt:

    Tagchen erstmal danke an den Entwickler ;)

    \"Warning: htmlentities() [function.htmlentities]: charset `3\’ not supported, assuming iso-8859-1\"

    was sagt mir diese Fehlermeldung aus?
    Kann es sein das die Encodierung hier eine Rolle spielt?

  120. Chris sagt:

    Das hab ich hinbekommen nun hab ich aber ein anderes Problem und zwar versuch ich verschiede Videos mittels RSS einzubinden der Rss Link ist aber kein eindeutiger sondern endet mit "…./2export.php?ch=!&pr=3&tcnt=10&tl=on&url=on&ttl=on&dlm=%7C" und kein RSS am ende das ganze geht auch aber es wird immer nur der gleiche Artikel importiert gibt es da eine Lösung für?

  121. Arne sagt:

    gibt es eine Möglichkeit, dem Aufruf des externen Webseite (.rss) die Logindaten für einen Proxyserver mitzugeben? Ein Tipp, wie man generell in PHP beim Aufruf einer Webseite aus dem Script den vorgeschalteten Proxyserver ansprechen kann, wäre nett.

  122. René sagt:

    Hallo! Bei mir wird ein einfaches “und-Zeichen” (&) wie folgt dargestellt: &amp;

    Ich habe von “auto” zu “UTF-8″ umgestellt.

    Kann mir bitte jemand kurzfristig helfen?

  123. Natural sagt:

    Hallo,

    habe dein Php Feed Reader schon einige Zeit laufen. Seit ein paar Tagen funktioniert es aber leider nicht mehr. Mir werden keine Fehler ausgegeben.

    Es klappt mit http://steamcommunity.com/groups/schuwiclan/rss/
    und mit http://www.web-spirit.de/feed nicht. Die Seite lädt dann wohl so ca. 30 Sekunden. Feeds sind beide Erreichbar. Habe nicht geändert. Evt. hat der Anbieter neue Software eingespielt. Es Läuft “PHP Version 5.2.4-2ubuntu5.27″ auf Apache2. Wie kann ich den Fehler finden? Danke schon einmal.

  124. Edi sagt:

    Hallo Sebastian,

    danke für das script!

    Es funktioniert sehr gut aber bestimmte Zeichen werden nicht korrekt angezeigt.

    Am Ende des Textes z.B. kommen statt [......] die Zeichen […]

    Hab schon alle encode Varianten durchprobiert, utf-8 bzw. auto funktionieren am Besten. Dennoch werden diese Anführungszeichen und Bindestriche eben w.o. dargestellt.
    Umlaute und andere sonst problematische Zeichen werden korrekt dargestellt.

    In meinem RSS Reader wird es korrekt dargestellt.
    Der Feed auf www.tc-inden.de eingebaut und verwendet utf-8.

    Gibt es eine Lösung?
    TOM hatte das Problem auch mal gemeldet, aber leider keine Lösung gepostet?

    Vielen Dank
    Edi

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">