RSS-Feed: Abrufen
Dieses Skript ruft einen externe Newsfeed ab.
- Querverweise
Das Skript
Stand: 21.10.2022
Verwendung auf eigenes Risiko. Keine Gewähr für Zuverlässigkeit, Sicherheit und Funktion. Beispielskript, es wird überlassen, wie es ist.
<?php
$wo = parse_url($feed_url);
$feedcache_path = __DIR__.'/'.$wo["host"].'_cache.html';
// Wie alt in Sekunden darf der Cache sein? (1800 s entsprechen einer halben Stunde)
// $feedcache_max_age = 1800;
$feedcache_max_age = 1800;
// Wie viele Einträge sollen angezeigt werden?
$max_entries = 5;
if(!file_exists($feedcache_path) or filemtime($feedcache_path) < (time() - $feedcache_max_age)) {
$xml = simplexml_load_string(file_get_contents($feed_url));
$output = '<sub>Die '.(int)$max_entries.' neusten Artikel bei</sub><h3><a class="rrl" target="_blank" href="'.htmlspecialchars($xml->channel->link).'">'.htmlspecialchars($xml->channel->title).'</a></h3><hr/>'.PHP_EOL;
$entries = $xml->channel->item;
$counter = 0;
// $output .= '<ul>';
foreach($entries as $root) {
$counter++;
// Ausgabe nach x Einträgen beenden:
if($counter > $max_entries) {
break;
}
$date = date('d.m.Y', strtotime($root->pubDate));
// Anreißertext:
$description = strip_tags($root->description);
$output .= '<h4><a class="rrl" href="'.htmlspecialchars($root->link).'" target="_blank" title="In neuem Fenster/Tab öffnen">'.htmlspecialchars($root->title).'</a></h4>'.PHP_EOL;
$output .= '<p>'.$description.' <sub>('.htmlspecialchars($date).')</sub></p>'.PHP_EOL;
}
$output .= '<hr/>';
echo $output;
file_put_contents($feedcache_path, $output);
} else {
echo file_get_contents($feedcache_path);
}
?>