RSS-Feed mit PHP auslesen
Mit simplexml_load_file kann ein Feed mittels PHP ausgelesen auf einer anderen Website angezeigt werden.
Den RSS-Feed von Websites auszulesen ist eine einfach Möglichkeit um externe Inhalte in die eigene Seite zu übertragen. Wenn Ihr beispielsweise ein Blog und ein Portfolio mit WordPress (oder einem anderen CMS) umgesetzt habt könnte es durchaus sinnvoll sein auf dem Blog das neuste Projekt des Portfolios anzuzeigen und im Portfolio auf den neuesten Artikel des Blogs hinzuweisen.
RSS-Feed auslesen
Der folgende PHP-Code dient dazu, einen Feed von einer angegebenen URL zu laden und die Informationen der enthaltenen <item>
-Elemente zu extrahieren.
Zunächst wird versucht, die XML-Datei von der angegebenen URL mit simplexml_load_file
zu laden. Dabei wird auf Fehler beim Laden der Datei geachtet, und das resultierende SimpleXMLElement-Objekt wird in der Variable $xml
gespeichert. Eine Schleife durchläuft die <item>
-Elemente im XML-Feed. Die relevanten Informationen, wie Titel und Link jedes <item>
, werden in einem assoziativen Array namens $result
gespeichert. Es wird überprüft, ob das erste <item>
existiert und gültige Titel- und Link-Informationen enthält.
Falls die Informationen vorhanden sind, wird ein HTML-Link erstellt und ausgegeben. Dabei wird htmlspecialchars
verwendet, um mögliche HTML-Injektionen zu verhindern. Wenn keine Informationen gefunden werden oder ein Fehler beim Laden der XML-Datei auftritt, werden entsprechende Meldungen ausgegeben.
<?php
$xmlUrl = "http://www.deineseite.de/feed/";
$result = array();
// Fehlerbehandlung für das Laden der XML-Datei
$xml = @simplexml_load_file($xmlUrl);
if ($xml !== false) {
$count = 0;
foreach ($xml->channel->item as $item) {
$result[$count]['title'] = (string)$item->title;
$result[$count]['link'] = (string)$item->link;
// Füge hier weitere Informationen hinzu, die du benötigst
$count++;
}
// Überprüfe, ob der Index im Array existiert, bevor du darauf zugreifst
if (isset($result[0]['link'], $result[0]['title'])) {
// Verwende htmlspecialchars für die HTML-Ausgabe
echo '<a href="' . htmlspecialchars($result[0]['link']) . '">' . htmlspecialchars($result[0]['title']) . '</a>';
} else {
echo "Keine Informationen gefunden.";
}
} else {
echo "Fehler beim Laden der XML-Datei.";
}
?>