jaegerschnitzel
Mitglied
Ich möchte einen Feed mit PHP auslesen und auf meiner Page ausgeben lassen. Habe dazu auch eine Funktion gefunden die klappen sollte:
Der Feed ist folgendermaßen aufgebaut:
Leider springt mein Code jetzt immer in die If-Anweisung und behauptet, dass kein <item> existiert. Ich denke das liegt mit der etwas komischen RSS-Datei zusammen.
Wie kann ich den Code umschreiben, damit er funktioniert?
PHP:
<?php
$filename = 'http://www.hartware.net/xml/news.rdf';
// Feed laden
if( !$xml = simplexml_load_file($filename) ) {
die('Fehler beim Einlesen der XML Datei!');
}
// Ausgabe Array
$out = array();
// auszulesende Datensaetze
$i = 5;
// Items vorhanden?
if( !isset($xml->item) ) {
die('Keine Items vorhanden!');
}
// fetchen der Items
foreach($xml->item as $item) {
if( $i-- == 0 ) {
break;
}
$out[] = array(
'title' => (string) $item->title,
'description' => (string) $item->description,
'link' => (string) $item->link,
// 'date' => date('d.m.Y', strtotime((string) $item->pubDate))
);
}
?>
Der Feed ist folgendermaßen aufgebaut:
Code:
<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet type='text/xsl' href='http://rss.feedsportal.com/xsl/de/rss.xsl'?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" version="2.0">
<channel>
<title>Hartware.net News</title><link>http://www.hartware.net/</link><description>Die wichtigsten Hardwarenews der
letzten Tage</description><language>en</language><pubDate>Thu, 30 Apr 2009 14:26:00 GMT</pubDate><lastBuildDate>Thu, 30 Apr 2009 14:26:00 GMT</lastBuildDate><ttl>30</ttl><image><title>Hartware.net
News</title><url>http://www.hartware.net/gfx/hartware88x30.jpg</url><link>http://www.hartware.net/</link></image>
<item><title>OCZ mit 910-Watt-Netzteil</title><link>
http://rss.feedsportal.com/c/665/f/8431/s/409a5ec/l/0L0Shartware0Bnet0Cnews0I46850A0Bhtml/story01.htm</link><description>PC Power & Cooling Silencer 910 besitzt "80Plus Silber"-Zertifizierung
<img width='1' height='1' src='http://rss.feedsportal.com/c/665/f/8431/s/409a5ec/mf.gif' border='0'/><div class='mf-viral'><table border='0'><tr><td valign='middle'
><a href="http://res.feedsportal.com/viral/sendemail2_de.html?title=OCZ mit 910-Watt-Netzteil&link=http://www.hartware.net/news_46850.html" target="_blank"><img
src="http://rss.feedsportal.com/images/emailthis2.gif" border="0" /></a></td><td valign='middle'><a href="http://res.feedsportal.com/viral/bookmark_de.cfm?title=OCZ mit
910-Watt-Netzteil&link=http://www.hartware.net/news_46850.html" target="_blank"><img src="http://rss.feedsportal.com/images/bookmark.gif" border="0" /></a></td></tr
></table></div><br/><br/><a href="http://da.feedsportal.com/r/38124252471/u/5/f/8431/c/665/s/67741164/a2.htm"><img
src="http://da.feedsportal.com/r/38124252471/u/5/f/8431/c/665/s/67741164/a2.img" border="0"/></a></description><pubDate>Thu, 30 Apr 2009 13:32:21 GMT</pubDate><guid isPermaLink="false">
http://www.hartware.net/news_46850.html</guid></item>
</channel></rss>
Leider springt mein Code jetzt immer in die If-Anweisung und behauptet, dass kein <item> existiert. Ich denke das liegt mit der etwas komischen RSS-Datei zusammen.
Wie kann ich den Code umschreiben, damit er funktioniert?