Sie haben JavaScript deaktiviert. Vermutlich sind Sie ein Kollege und wollen nur sehen, ob meine Website auch ohne JavaScript funktioniert.
Andernfalls: Bitte aktivieren Sie JavaScript!
Ich nutze RSS-Feeds sehr intensiv. Im Feed-Reader Feedly. Ich habe überwiegend Nachrichtenseiten abonniert und kann mir so schnell einen Überblick über die aktuellen Nachrichten des Tages verschaffen.
Auch Blogs, z. B. WordPress, bieten zumeist einen RSS-Feed an. Da ich kein CMS nutze, sondern alle Seiten manuell code, erstelle ich auch den RSS-Feed bzw. die zugrunde liegende XML-Datei manuell.
Soweit, so gut.
Nun möchte ich natürlich, dass mein RSS-Feed auch gelesen bzw. abonniert wird. Aber wie findet ein „Fan” von Webdesign Weisshart die Adresse meines Feeds? (Sie lautet: https://webdesign.weisshart.de/artikel_feed.xml.)
Um Interessenten die Suche zu ersparen, habe ich auf der Startseite eine Reihe von Informationen eingefügt.
Vorschau des RSS-Feeds:
Den RSS-Feed in Feedly abonnieren:
Alternativ: Die Adresse des Feeds kopieren und manuell in deinen Feedreader einfügen:
Der Link zu Feedly ist straightforward:
https://feedly.com/i/subscription/feed/https://webdesign.weisshart.de/artikel_feed.xml
ebenso die Angabe der URL zum copy & paste,
aber …
Bis vor einigen Jahren haben Browser beim Aufruf eines korrekt formatierten xml-files eine Feed-Vorschau angezeigt. Leider ist dieses Feature verschwunden. Beim Aufruf des xml-files wird jetzt der Quelltext angezeigt (warum wohl?).
Eine Zeit lang gab es entsprechende Browser-Addons, die aber heute alle nicht mehr funktionieren. (Ausnahme: Firefox )
Eine aktuell mögliche Lösung wäre https://rss.bloople.net/
Mit diesem Online-Tool kann man einen Link erzeugen, der dann eine Vorschau anzeigt: https://rss.bloople.net/?url=https://webdesign.weisshart.de/artikel_feed.xml
Aber damit mache ich mich wieder von einem externen Dienst abhängig, mit allen bekannten Nachteilen und Einschränkungen: Verfügbarkeit? Langsam, Datenschutz? usw. usf.
Vor vielen Jahren habe ich eine PHP-Funktion vorgestellt, die RSS-Feeds komfortabel als html anzeigt: rss2html.php Was liegt näher, als diese Funktion für meinen Zweck zu verwenden. Allerdings musste ich eine kleine Anpassung am Code vornehmen, um auch die Vorschaubilder korrekt anzuzeigen. (Wie seit einiger Zeit üblich, ließ ich mir dabei von ChatGPT helfen.)
<?php
// Hinweis: allow_url_fopen muss auf on gesetzt sein
$allowurlfopen = ini_get('allow_url_fopen');
if ($allowurlfopen != 1) {
echo "In der php.ini ist allow_url_fopen ausgeschaltet. Mit dieser Einstellung funktioniert das Einlesen des Feeds leider nicht.";
exit;
}
date_default_timezone_set("Europe/Berlin");
libxml_use_internal_errors(true);
function rss2html($url,$anz,$length,$target) {
$n=1;
if ($target == 1) {$target = ' target="_blank"';} else {$target = '';}
$output = '<ul>';
if ($rss = @simplexml_load_file($url)) {
foreach($rss->channel->item as $item) {
$title = str_replace ("& ","& ",$item->title);
$wort = explode(" ", $title); //erstes Wort
if (!isset($wort[1])) { $wort[1] = null; }
$output .= '<li class="item_link">';
$output .= '<h2><a href = "'.$item->link.'" '.$target.'>'.$item->title.'</a></h2> ';
if (isset($item->pubDate)) {
$output .= '<span class="it_date">';
$output .= date("d.m.Y H:i",strtotime($item->pubDate)).' Uhr</span><br>';
}
$desc = (string)$item->description;
// CDATA-HTML parsen
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML('<?xml encoding="utf-8" ?><body>' . $desc . '</body>');
libxml_clear_errors();
// Erstes <img> extrahieren
$img = '';
$imgTags = $doc->getElementsByTagName('img');
if ($imgTags->length > 0) {
$imgSrc = $imgTags->item(0)->getAttribute('src');
$imgAlt = $imgTags->item(0)->getAttribute('alt');
$img = '<img src="' . htmlspecialchars($imgSrc) . '" alt="' . htmlspecialchars($imgAlt) . '">';
}
// Text extrahieren (ohne das <img>)
$text = '';
foreach ($doc->getElementsByTagName('body')->item(0)->childNodes as $node) {
if ($node->nodeName !== 'img') {
$text .= $doc->saveHTML($node);
}
}
// Kürzen, wenn gewünscht
if ($length && strlen(strip_tags($text)) > $length) {
$text = strip_tags($text);
$text = substr($text, 0, $length);
$cut = strrpos($text, ' ');
$text = substr($text, 0, $cut) . ' ...';
}
// In Ausgabe übernehmen
$output .= $img . '<p>' . $text . '</p>';
$output .= ' <span class="weiter"><a href="'.$item->link.'" '.$target.'>weiterlesen: "'.$wort[0].' '.$wort[1].' ..."</a></span>';
$output .= '</li>';
if($n>=$anz){break;}
$n++;
}
return $output.'</ul>';
} elseif ($rss === false) {
echo "Laden des XML fehlgeschlagen\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
} else {return "Fehler beim Einlesen der Datei $url";}
}
?>
Die obige Funktion wird ganz einfach wie folgt aufgerufen. Übergeben werden als erster Parameter der URL des Feeds, als zweiter Parameter die Anzahl der maximal anzuzeigenden Nachrichten, und als dritter Parameter die max. Länge des angezeigten Textes (Zeichen), sowie als vierter Parameter 0, oder 1 für target="_blank", damit Links in einem neuen Tab/Fenster geöffnet werden.
<?php echo rss2html("http://webdesign.weisshart.de/artikel_feed.xml",100,500,1); ?>
Ich habe das Script universell und portabel gemacht.
hier online testen.
Kostenloser Download
Mit dem Download anerkennen Sie unsere Allgemeinen Geschäftsbedingungen.
Das Download-Archiv entpacken, und die darin enthaltene Datei wdw_reader.php auf den Webspace laden. fertig.
Artikeltexte und Code-Snippets: Creative Commons
CC BY-SA 4.0
Medien (Bilder, Videos, Audios) sind evtl. urheberrechtlich geschützt.
Über Ihren Kommentar zu diesem Artikel freue ich mich.
Wenn Sie aber Fragen haben, und eine Antwort erwarten, nutzen Sie bitte das Supportforum! Die Nutzung des Forums ist auch ohne Registrierung möglich.
Robert Lender schrieb am Mittwoch, 02.07.25 22:54 Uhr:
Danke für den Hinweis. Werde ich mal in meinem Blog ausprobieren.