RSS auslesen - mal klappt's mal nicht

DrEvil

Erfahrenes Mitglied
Hallo Leute,
ich habe mir im Netz ein Tutorial gesucht, in dem das auslesen von RSS-Feeds mittels PHP erklärt ist. Ich hab es dann für meine Bedürfnisse angepasst. Es funktionierte erfreulicher Weise mit den ersten Blogs auch wirklich gut. Bei Blog Nr. 4 und 5 traten dann die ersten Schwierigkeiten auf. Das Skript hat nix mehr ausgegeben. Wenig später trat das Problem auch bei einem Blog auf, bei dem es erst funktioniert hatte (auf dem Blog war ein neuer Beitrag erschienen).

Jetzt funktioniert es bei einigen - und bei einigen nicht...

Kennt sich jemand evtl. mit RSS aus und kann mir helfen?

PHP:
<?php
//ArrayStruktur (Blog, Bildname, FeedURL, BlogURL)
$blogarray = array(
	array('Daburnas Logbuch', 'daburna', 'http://feeds.feedburner.com/daburna', 'http://www.daburna.de/blog/'),
	array('Fleischervorstadt-Blog', 'fleischervorstadt', 'http://blog.17vier.de/?feed=rss2', 'http://blog.17vier.de/'),
	array('Julias 49suns Blog', '49suns', 'http://49suns.de/feed', 'http://49suns.de/'),
	array('Blog-Lebewesen', 'bloglebewesen', 'http://blog-lebewesen.de/?feed=rss2', 'http://blog-lebewesen.de/'),
	array('Webmoritz', 'webmoritz', 'http://www.webmoritz.de/feed/', 'http://www.webmoritz.de/'),
	array('Greifswald wird Gr&uuml;n', 'gruene', 'http://blog.gruene-greifswald.de/feed/', 'http://blog.gruene-greifswald.de/')
);

$blogid = rand(0,5);

// RSS PARSER
//QUELLE: http://doku.wordpress-deutschland.org/Beiträge_extern_darstellen

require_once TEMPLATEPATH.'/api/blogfenster/magpierss/rss_fetch.inc';

$rss_url = $blogarray[$blogid][2] /*BlogURL*/;
$my_rss = fetch_rss($rss_url);

 $title = $my_rss->items[0]['title'];
 $url = $my_rss->items[0]['link'];
?>

<div id="blogfensterapi">
<p class="head"><a href="#">Das BlogFenster</a></p>
<p class="text" style="background-image:url(<?php bloginfo('template_url'); echo "/api/blogfenster/".$blogarray[$blogid][1] //Dateiname?>.jpg)"> <a href="<?php echo $blogarray[$blogid][3] //BlogURL?>" target="_blank"><?php echo $blogarray[$blogid][0] //Blog?></a> schreibt:<br>
<b><?php echo '<a href="'.$url.'" target="_blank">'.htmlentities($title, ENT_QUOTES, 'utf-8', false).'</a></p>';?></b>
</div>
Ein Hinweis noch - bei einigen FeedURLs musste ich das "feed://" durch "http://" ersetzen, weil das Script welches ich mir geladen habe, damit nicht klar kam. Trotzdem funktionierte es auch nach der "Protokoll-Änderung" noch.
 
Ok. Ich habe es jetzt herausgefunden, wo das Problem lag.
Ich habe nur keine Ahnung warum ausgerechnet DAS nun ein Problem war.

PHP:
htmlentities($title, ENT_QUOTES, 'utf-8', false)
erzeugt den Fehler
PHP:
htmlentities($title)
gibt es korrekt aus.

Vielleicht kann das ja wer erklären.

Gruß DrEvil
 
Vermutlich weil die Daten nicht UTF-8 enkodiert sind. Standardmäßig nutzt [phpf]htmlentities[/phpf] ISO-8859-1.
 
Zurück