PHP: 0815 RSS-Reader

Hier geht es ganz allgemein um Programmierung. Der Schwerpunkt liegt dabei natürlich bei der Webentwicklung mit HTML & Co. Es darf aber gern auch mehr sein.
Antworten
Benutzeravatar
Madekozu
Administrator
Beiträge: 70
Registriert: 15. September 2023 11:10

PHP: 0815 RSS-Reader

Beitrag von Madekozu »

Ich hab heute mal einen kleinen Feedreader für madekozu.de gebastelt, um Inhalte von meinen anderen Projekten per BBCode hier im Forum anzeigen zu können (Bsp: viewtopic.php?t=260). Der Name ist dabei Programm - 0815 - es werden nur die Inhalte ausgegeben, mehr braucht das Ding nicht zu machen.
Das Ding hab ich dann aber noch ein wenig weitergebastelt, damit auch andere was damit anfangen können. Die Feeds werden nach Datum sortiert und ausgegeben. Ein Klick auf das Dreieck vor dem Datum klappt den Eintrag auf, Klick auf den Titel führt zur Quelle.

Code: Alles auswählen

<html lang="de-DE">
<meta charset="UTF-8">
<title>0815 RSS-Reader</title>
</head>
<body>
<?php
//URL der Feeds -> nur RSS!
$feeds = array(
"https://domain.xyz/feed1/",
"https://domain.xyz/feed2/",
"https://domain.xyz/feed3/",
"https://domain.xyz/feed4/",
"https://domain.xyz/feed5/"
);

//Auslesen der Feeds
$entries = array();
foreach($feeds as $feed) {
$xml = simplexml_load_file($feed);
$entries = array_merge($entries, $xml->xpath("//item"));
}

//Sortieren nach Datum
usort($entries, function ($feed1, $feed2) {
return strtotime($feed2->pubDate) - strtotime($feed1->pubDate);
});

//Ausgabe der Inhalte
foreach($entries as $entry){
?>
<details>
<summary><?= strftime('%d.%m.%Y %H:%M', strtotime($entry->pubDate)) ?>: <a href="<?= $entry->link ?>" target="_blank"><?= $entry->title ?></a> (<?= parse_url($entry->link)['host'] ?>)</summary>
<p><?= $entry->description ?></p>
</details>
<?php
}
?>
</body>
</html>

Noch geplant:

  • CSS, um das ganze Ding etwas "hübscher" zu machen

  • Erkennung und Verarbeitung von Atom-Feeds (technisch gesehen fast das gleiche, nur die Struktur ist etwas anders.)

  • eine Version, bei der die Feed-URL per Parameter anstatt im Quellcode übergeben werden (macht das Ganze flexibler einsetzbar)

  • eine BBCode-Version für das phpBB, da das ja auch der Auslöser für das 0815-Ding war ;)

Wann?
irgendwann zwischen Januar und Dezember

Antworten