Seite 1 von 1

RSS-Feed auslesen

Verfasst: Di 17. Jun 2014, 14:18
von Seatin
Servus Leute,
Ich hab ein Problemchen: Ich hab ein Script gefunden, mit dem ich den RSS-Feed meines Blogs auslesen kann. Leider beschreibt der Autor dieses Script nicht genauer.
Dieser funktioniert auch einwandfrei - das einzigste Problem ist halt, dass er nur der letzte Beitrag anzeigt. Zudem werden Umlaute, Anführungszeichen und sonstige Sonderzeichen als Euro- oder Trademark-Zeichen angezeigt.

Hier erstmal der Code:

Code: Alles auswählen

<?php 
$xml = simplexml_load_file("http://secrets-blog.com/feed/");
$count = 0;
$result = array();

foreach($xml as $key0 => $value)
{
    foreach($value as $key => $value2)
    {
        if($key == 'item')
        {
            foreach($value2 as $k => $v)
                $result[$count][$k] = (string)$v;
            $count ++;
        }
    }
}
 
print_r('<a href="'.$result[0]['link'].'">'.$result[0]['title'].'</a>');
?>
Nun wie kann ich in dem Script Umlaute und Sonderzeichen anzeigen lassen. Außerdem ist es möglich 4 weitere Artikel anzuzeigen??
DANKE IM VORRAUS^^

Re: RSS-Feed auslesen

Verfasst: Di 17. Jun 2014, 20:37
von Jasko
Seatin hat geschrieben:Servus Leute,
Ich hab ein Problemchen: Ich hab ein Script gefunden, mit dem ich den RSS-Feed meines Blogs auslesen kann. Leider beschreibt der Autor dieses Script nicht genauer.
Dieser funktioniert auch einwandfrei - das einzigste Problem ist halt, dass er nur der letzte Beitrag anzeigt. Zudem werden Umlaute, Anführungszeichen und sonstige Sonderzeichen als Euro- oder Trademark-Zeichen angezeigt.
Hallo, also ich denke du bekommst mehr Feeds in dem du die $result variable in eine Schleife packst und auch die restlichen resultate auslesen lässt, oder halt so viele wie du brauchst z.B. die letzten 5. Manuel geht das natürlich auch.

Code: Alles auswählen

<?php 
//...
print_r('<a href="'.$result[0]['link'].'">'.$result[0]['title'].'</a>');
print_r('<a href="'.$result[1]['link'].'">'.$result[1]['title'].'</a>');
print_r('<a href="'.$result[2]['link'].'">'.$result[2]['title'].'</a>');
//...
?>
Ich würde es aber in eine Schleife machen mit z.B. zwei Bedingungen, die eine sagt schreibe alle feeds aus, die andere, wenn es mehr als 5 sind brich ab.
Ich hoffe es ist verständlich was ich meine.

Beim zweiten Problem würde ich einen eigenen Parser empfehlen. In dem du die einzelnen title ausliest und alle Sonderzeichen richtig anzeigen lässt. Das Problem besteht glaube ich darin das simplexml_load_file() die Zeichen nicht richtig umwandelt, nach dem einsetztn des Cast Operators bei $v kommen dan die Sonderzeichen anstatt Umlaute.

Re: RSS-Feed auslesen

Verfasst: Mi 18. Jun 2014, 00:29
von awardfan
Das Problem mit der Zeichendarstellung kannst du lösen mit

Code: Alles auswählen

<?php
header('Content-Type: text/html;charset=utf-8');
$xml = simplexml_load_file("http://secrets-blog.com/feed/");
Edit:
Ich weiß nicht genau, was du mit dem Feedreader vorhast, aber es gibt auch eine Reihe von Lösungen auf der Basis von JavaScript, die man sehr schön in die Website einbauen. Hier mal ein Beispiel
http://☺.npage.de/feedreader-demo-1.html
bei dem mir gut gefällt, dass es sehr einfach ist, mehrere Feeds zu mixen. Ich habe es von hier
http://www.sitepoint.com/jquery-rss-feed-display-live/

Re: RSS-Feed auslesen

Verfasst: Di 9. Sep 2014, 20:57
von hilmaster

Re: RSS-Feed auslesen

Verfasst: Fr 28. Nov 2014, 08:26
von Nico-S
Die Lösung hat dir eigentlich bereits "awardfan" präsentiert. Es empfiehlt sich auch generell bevor du deinen Text ausgibst, diesen eventuell vorher zu formatieren mit http://php.net/manual/de/function.htmlentities.php

Grüße Nico