RSS Newsfeed auf Homepages einbinden (Tutorial – Teil 2)

Im ersten Teil dieses Tutorials auf ‚RSS Newsfeed auf Homepages einbinden (Tutorial)‚ habe ich den Sinn und Zweck meiner Lösung erklärt, die Funktionsweise dargestellt und die Voraussetzungen aufgelistet.

Beteiligte Dateien

Hier findest du nun die nötigen Dateien und deren Inhalte inkl. Erklärung.

update.php

update.php ist die wichtigste Datei dieser Lösung. Sie wird regelmäßig durch den Cronjob aufgerufen. Dabei bindet sie die RSS Datei ein, generiert aus deren Inhalten eine Liste aus den RSS Elementen und speichert diese in die Datei cache.htm. Hier der Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php 
// RSS Objekt erzeugen 
$rss = simplexml_load_file(
 'https://homepage-werbung.de/feed/'); 
// Ausgabe cachen (nicht auf den Bildschirm 
// schreiben) 
ob_start(); 
?> 
<ul> 
<?php 
// RSS Elemente durchlaufen 
foreach($rss->channel->item as $i) { 
?> 
<li>
 <a href="<?=$i->link?>"><?=$i->title?></a> 
</li> 
<?php 
} 
?> 
</ul> 
<?php 
// Cache-Datei oeffnen 
$cacheFile = fopen('cache.htm', 'w'); 
// Ausgabepuffer leeren; Inhalt in Datei und 
// zur Kontrolle in Variable speichern 
fwrite($cacheFile, $rssLinks = ob_get_clean()); 
// Datei schliessen 
fclose($cacheFile); 
// zur Kontrolle Cache-Inhalt anzeigen 
var_dump($rssLinks); 
?>

Am Anfang vom Code wird beispielhaft der Feed von Homepage-Werbung.de eingebunden. Ersetzt diese Newsfeed Adresse durch die von euch gewünschte. Es wird der HTML-Code (hier eine ungeordnete Liste) mit Links erzeugt. Das könnt ihr euch natürlich anpassen wie ihr wollt. Neben ‚title‚ und ‚link‚ gibts noch andere Attribute vom RSS Element $i, die ihr benutzen könnt, zB ‚description‚ (Anrisstexte), ‚date‚ (Veröffentlichungs-Datum), ‚category‚ (Blogkategorien/Tags des Beitrags), usw. Fügt mal testweise ein var_dump($i); innerhalb der Schleife ein, wenn ihr sehen wollt, was ihr da alles noch für Attribute zur Verfügung habt.

cache.htm

Die Datei ‚cache.htm‚ ist im Prinzip nur ein Datenspeicher, der bei jedem Aufruf von update.php aktualisiert wird. Achtet bei dieser Datei nur auf die Dateirechte. Eure update.php muss Lese- und Schreibrechte für cache.htm haben. Beim Laden einer eurer Homepage-Seiten wird später einfach der Inhalt von cache.htm an die Stelle eingebunden, wo die RSS-Feed-Links (oder was ihr auch immer aus der Feed Datei macht) erscheinen sollen.

template.php

Bei dieser Datei ist der Dateiname, im Gegensatz zu den anderen, nur als Beispiel zu verstehen. Es ist mit template.php diejenige Datei eurer Homepage gemeint, in der euer HTML Code steht, bzw. die Datei, die euren HTML Code generiert. Mit folgendem Code bindet ihr dort einfach den Inhalt von cache.htm ein.

1
2
3
<? 
include 'pfad-zu-eurer-cache-datei/cache.htm'; 
?>

pfad-zu-eurer-chache-datei ersetzt ihr natürlich noch durch den Ordnerpfad zu eurer cache.htm Datei.