Hallo Leute,
auch heute möchte ich mich bedanken für die vielen wertvolle Beiträge in diesem Forum, und für die geduldigen Antworten auf meine Anfängerfragen.
Es geht um ein rudimentäres Skript für Verkehrsmeldungen im Großbereich Hamburg:
- Einrichten eines WWW Readers bei den I/O Instanzen, Link lautet:
- „http://www.ndr2.de/verkehr160.html“
- Aktualisierung habe ich auf 180 Sekunden eingestellt
- Erstellen von vier verschiedenen String-Variablen:
- „Gefahr“
- „Autobahnen“
- „Bundesstraßen“
- „Sonstige“
- Einrichten eines Textparsers der die vier verschiedene String-Variablen in dieser Reihenfolge jeweils mit „Get Text between“ füllt:
- „<h2>Gefahr</h2>“ bis „</ul></li>“ - füllt String-Variable „Gefahr“
- „<h2>Autobahnen</h2>“ bis „</ul></li>“ - füllt String-Variable „Autobahnen“
- „<h2>Bundesstraßen</h2>“ bis „</ul></li>“ - füllt String-Variable „Bundesstraßen“
- „<h2>Sonstige</h2>“ bis „</ul></li>“ - füllt String-Variable „Sonstige“
- Skript erstellen mit folgendem Inhalt:
<?
//$string = zu durchsuchender Text
//$mark = zu suchende Stelle, Format: Anfangsmarke*Endmarke
//Text: "<div>*</div></li>"
//Link: "icons/*.gif"
echo "<body bgcolor='#27292b' text='#ffffff'>"; // Farbe anpassen oder style entfernen
// Link für die Grafik der Verkehrssituation
$Link = "http://data.ndr.de/ndrstau/generated/gesamt.jpg";
// Grafik einfügen in das Ergebnis
echo "<img src=\"$Link\" title=\"Gesamt\">";
// Gefahrenmeldungen aus dem Ausschnitt extrahieren
$Gefahrendaten = get_mark(GetValueString(25715 /*[Sonstige Daten\Verkehrsmeldungen\Gefahr]*/ ),"<div>*</div></li>");
// Gefahrenicons aus dem Auschnitt extrahieren
$GefahrenIcon = get_mark(GetValueString(25715 /*[Sonstige Daten\Verkehrsmeldungen\Gefahr]*/ ),"icons/*.gif");
// Überschrift erstellen
$Gefahren = "<h3>Gefahr</h3>";
// In der folgenden Schleife wird der Text generiert.
for($i=0; $i < Count($Gefahrendaten); $i++)
{
// Macht den ersten Buchstaben zu einem Großbuchstaben
$IconTitel= ucfirst($GefahrenIcon[$i]);
// Icon und Text der Meldung
$Gefahren = $Gefahren."<h5>"."
"."<img src=\"../img/icons/gif/$GefahrenIcon[$i].gif\" title=\"$IconTitel\">"." ".$Gefahrendaten[$i]."</h5>";
}
// Eintragen der Meldung in das Fenster
echo $Gefahren."
";
// Für die weiteren Gruppen entsprechen fortfahren...
$Autobahndaten = get_mark(GetValueString(19047 /*[Sonstige Daten\Verkehrsmeldungen\Autobahnen]*/ ),"<div>*</div></li>");
$AutobahnIcon = get_mark(GetValueString(19047 /*[Sonstige Daten\Verkehrsmeldungen\Autobahnen]*/ ),"icons/*.gif");
$Autobahnen = "<h3>Autobahnen</h3>";
for($i=0; $i < Count($Autobahndaten); $i++)
{
$IconTitel= ucfirst($AutobahnIcon[$i]);
$Autobahnen = $Autobahnen."<h5>"."
"."<img src=\"../img/icons/gif/$AutobahnIcon[$i].gif\" title=\"$IconTitel\">"." ".$Autobahndaten[$i]."</h5>";
}
echo $Autobahnen."
";
$Bundesstrassendaten = get_mark(GetValueString(17771 /*[Sonstige Daten\Verkehrsmeldungen\Bundesstraßen]*/ ),"<div>*</div></li>");
$BundesstrassenIcon = get_mark(GetValueString(17771 /*[Sonstige Daten\Verkehrsmeldungen\Bundesstraßen]*/ ),"icons/*.gif");
$Bundesstrassen = "<h3>Bundesstraßen</h3>";
for($i=0; $i < Count($Bundesstrassendaten); $i++)
{
$IconTitel= ucfirst($BundesstrassenIcon[$i]);
$Bundesstrassen = $Bundesstrassen."<h5>"."
"."<img src=\"../img/icons/gif/$BundesstrassenIcon[$i].gif\" title=\"$IconTitel\">"." ".$Bundesstrassendaten[$i]."</h5>";
}
echo $Bundesstrassen."
";
$Sonstigedaten = get_mark(GetValueString(30818 /*[Sonstige Daten\Verkehrsmeldungen\Sonstige]*/ ),"<div>*</div></li>");
$SonstigeIcon = get_mark(GetValueString(30818 /*[Sonstige Daten\Verkehrsmeldungen\Sonstige]*/ ),"icons/*.gif");
$Sonstige = "<h3>Sonstige</h3>";
for($i=0; $i < Count($Sonstigedaten); $i++)
{
$IconTitel= ucfirst($SonstigeIcon[$i]);
$Sonstige = $Sonstige."<h5>"."
"."<img src=\"../img/icons/gif/$SonstigeIcon[$i].gif\" title=\"$IconTitel\">"." ".$Sonstigedaten[$i]."</h5>";
}
echo $Sonstige."
";
return;
// Diese Funktion trennt die relevanten Bereiche aus dem Ausschnitt heraus $string ist dabei der zu durchsuchende Gesamtstring,
// in $Mark sind durch "*" getrennt der Beginn des zu suchenden Strings und das Ende des zu suchende Abschnittes. Beispiel für den Text "<div>*</div></li>"
function get_mark($string,$mark)
{
$ausgabe = array();
$template = explode("*",$mark);
$mark = $template[0];
$end = $template[1];
$string = strstr($string,$mark);
$temp = explode($mark,$string);
$a = 1;
foreach ($temp as $tempx)
{
$tempx = explode($end,$tempx);
$tempx = $tempx[0];
if ($tempx)
{
array_push ($ausgabe,$tempx);
}
}
return $ausgabe;
}
?>
Die Icons kann man sich auch auf der NDR2-Seite direkt herunterladen, sind aber auch im Anhang.
Änderung: sysrun hat mich darauf aufmerksam gemacht, dass die Icon rechtlich ein Problem darstellen könnten, ich kann das nicht beurteilen, möchte aber selbstverständlich weder den Forenbetreibern noch irgendjemanden Probleme bereiten.
Die Dateien die bis dato aufgetaucht sind heißen:
- baustelle.gif
- stau.gif
- stoerung.gif
- gefahr.gif
- wetter.gif
- sperrung.gif
Wie es am Ende aussehen sollte, davon habe ich auch einen Screenshot in den Anhang gehängt. Über Feedback würde ich mich sehr freuen, insbesondere aber über weitere Verbesserungsvorschläge…
und vielleicht lerne ich ja dabei noch ein paar IPS-Fans aus dem Großraum Hamburg kennen?
Joachim