Da ich selbst auf der Suche nach einem solchen Newsticker war und noch nichts adäquates gefunden habe, habe ich kurzerhand ein Skript erstellt, welches dies erledigt.
Vorraussetzung hierfür: Webserver mit PHP
Im Fehlerfall: Es kann sein, dass das JavaScript durch den lokalen Aufruf geblockt wird.
Das Skript benötigt auf dem Server Ausführ- und Schreibrechte, damit die RDF-Datei heruntergeladen und verarbeitet werden kann. Dies geschieht bei jedem Aufruf und dauert weniger als 1 Sekunde 🙂
Die Seite kann bequem über ein <iframe>-Tag eingebunden werden.
Newsticker Skript

Die Adresse der Datei der News-Datei kann in Zeile 3 geändert werden.
Die Farben kannst Du per CSS anpassen:
- Zeile 73: Hintergrundfarbe
- Zeile 74: Textgröße
- Zeile 82: Textfarbe
Die Anzahl der News, die aus der Datei gelesen werden sollen, können in Zeile 40 angepasst werden.
<?php
//URL der Datei, die geladen/geparsed werden soll
$newsfile = "http://www.tagesschau.de/newsticker.rdf";
// Funktion, um News rdf Datei abzuholen
function get_file($file, $local_path, $newfilename)
{
$err_msg = '';
//echo "<br>Attempting message download for $file<br>";
$out = fopen($local_path.$newfilename,"wb");
if ($out == FALSE){
print "File not opened<br>";
exit;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $file);
curl_exec($ch);
//echo "<br>Error is : ".curl_error ( $ch);
curl_close($ch);
}
//Funktionsaufruf um die Datei abzuholen
get_file($newsfile,'./','newsticker.rdf');
// Feed einlesen
if( !$xml = simplexml_load_file('newsticker.rdf') ) {
die('Fehler beim Einlesen der XML Datei!');
}
// Ausgabe Array
$out = array();
// auszulesende Datensaetze
$i = 7;
// Items vorhanden?
if( !isset($xml->channel[0]->item) ) {
die('Keine Items vorhanden!');
}
// Items holen
foreach($xml->channel[0]->item as $item) {
if( $i-- == 0 ) {
break;
}
$out[]=(string) $item->title;
}
//print_r($out);
// Eintraege ausgeben
$news = "";
foreach ($out as $value) {
$news .= " ++++ ".$value;
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>SKB Web - NewsParser</title>
<style>
.marquee {
max-width: 100vw; /* iOS braucht das */
white-space: nowrap;
overflow: hidden;
/* Hintergrundfarbe des Lauftextes. Auskommentieren, um Transparent zu erhalten */
background-color: #000000;
font-size:20px;
}
.marquee span {
display: inline-block;
padding-left: 100%;
animation: marquee 10s linear infinite;
/* Textfarbe des Lauftextes */
color: #FFFFFF;
}
/* Optional: mouseover (oder Tipp auf dem Touchscreen) pausiert die Laufschrift */
.marquee span:hover {
animation-play-state: paused
}
/* Make it move */
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-100%); }
}
</style>
</head>
<body>
<div id="marquee" class="marquee"><span><?php echo $news; ?></span></div>
<script>
if (document.getElementById("marquee")) {
var laufschrift = document.getElementById("marquee");
len = laufschrift.innerHTML.length;
laufschrift.firstChild.style.animationDuration = len/6 +"s";
}
</script>
</body>
</html>
1 Kommentar
[…] Hier geht es zum Skript:PHP Skript zum Erstellen eines Newstickers […]