Verkehrsmeldungen die xte

Hi,

da in einem anderem Thread bezüglich meiner Staumeldung nachgefragt wurde, dachte ich ich Poste es im neuem Thread und nicht in der Bahnabfrage.

Das Script ist nicht professionalisiert.

TODO: die Variablen IDs anpassen und ggf. erweitern für die Abfragen.

Genutzt wird die iPhone Abfrage von: verkehrsinfo

Script:

<?
	// TODO: es sind mal img mit Werbung mit gekommen. TODO: Diese rausfiltern

	// liste der variablen und deren url abfragen
	//
	$variable_list = array(
	20686 => "http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=A2",
	15311 => "http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=B65",
	29003 => "http://iphone.verkehrsinfo.de/showmessages.php?c=1&bl=258"
	);

   // Datenausgabe
	while ($varURL = current($variable_list))
	{
		$str = getTrafficMessage($varURL);
		
		SetValue(key($variable_list), utf8_decode($str));
		next($variable_list);
	}

	// abfrage zeit setzen
	SetValue(24127 /*[Reise\Staumeldungen\Verkehrsmeldungen\Abfrage von]*/,  date("H:i",time()));

// aus den links von http://iphone.verkehrsinfo.de
//
// spezielle strasse aktuell genutzt
// http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=A2
//
// niedersachsen für später
// http://iphone.verkehrsinfo.de/showmessages.php?c=1&bl=258
//
// Parameter: URL - vollständige URL welche die Daten zurückgibt
//
function getTrafficMessage($value)
{
	$meldung = file_get_contents($value);
	$laenge = strpos($meldung,"www.verkehrsinfo.de<br>") - 40 - strpos($meldung,"</head>") +7 ;

	echo substr($meldung,strpos($meldung,"</head>")+7,$laenge);
	// head block und (C) entfernen
	$message=substr($meldung,strpos($meldung,"</head>")+7,$laenge);

	$str = "<table width='90%' align='center'>"; // Farbe anpassen oder style entfernen

	// prüfen ob <li> vorkommen, dann liegen auch meldungen vor
	if (strpos($meldung,"<li>")>0)
	{
		// es liegen welche vor also meldugn anhängen
	   $str=$str.$message;
	}
	else
	{
	   // keine Meldung dann statischer text analog den aus dem netz
	   $str=$str."<ul><li>Es liegen keine Meldungen vor.</li></ul>";
	}
   $str=$str."</table>";

	//echo $str;
	return $str;
}
?>

Super Danke Dir funktioniert super…

Hallo Mäc,

Danke geht gut, tolle sache, sehr einfach, cool

D.Voss

super Teil , aber bei mir ist die Ausgabe ist leider rechtsbündig.
Was mach ich falsch ? :frowning:

Hi,

Bei mir ebenfalls. Über einen kleinen Tipp wären wir dankbar !!!

Gruß
Michael

Hmm keine wirkliche Idee. Habe gerade mal Firefox anstelle Safari genommen. Aber bei mir ist es links.

Deine Variablen sehen auch irgendwie anders aus. Hast Du an der IPS CSS geschraubt?

Ich nutze 2.4 unter 2.3 sah es aber auch so aus.

Hallo.

Sind andere HTML-Boxen auch linksbündig oder nur die von diesem Skript befüllten?

Ist übrigens ein wirklich nettes Skript. WAF >= 100.

Grüsse.

Also bei mir sind die Linksbündig…

Vielleicht mal


 $str = "<table width='90%' align='center'>"; // Farbe anpassen oder style entfernen 

in


 $str = "<table width='90%' align='left'>"; // Farbe anpassen oder style entfernen 

ändern…

Funktioniert astrein.

Danke.

Hallo,

wenn die Ausgabe linksbündig ist, hilft es den Variablen das Profil ~HTMLBox zuzuweisen.

Gruß, Peter

Ja so sieht es bei mir auch aus.

@Peter
Ich wollte nur sagen bei mir ist es auch das Profil ~HTMLBox uns es sieht damit so aus wie auf dem Screenshot

Hallo,
man sollte seinen Text vorher lesen. :smiley:
Ich meinte natürlich: Wer die Verkehrsmeldung rechtsbündig hat, muss das Variablenprofil umstellen.

Peter

Ja klar- das war der Fehler.
Danke für die schnelle Hilfe:)

Hi,

ich weiß nicht was eine HTMLBox ist, aber der erzeugte HTML-Code ist nicht ganz korrekt. Ich bekomme z. B.

<table width='90%' align='center'><ul><li>Es liegen keine Meldungen vor.</li></ul></table>

zurückgeliefert. Es fehlen noch die

Es müssten zwei Zeilen verändert werden:

$str = "<table width='90%' align='center'><tr><td>"; // Farbe anpassen oder style entfernen

$str=$str."</td></tr></table>";

Oder wird der Inhalt der Variable durch das Profil HTMLBox automatisch korrigiert?

Hallo,
erst mal vielen Dank für das Skript. Supersache!
Da ich auf meinem Weg zur Arbeit 4 Autobahnen nutze war für mich die Ausgabe getrennt nach Autobahnen etwas voluminös.
Ich habe das Skript deshalb für mich so angepasst, dass alle Meldungen in der Reihenfolge wie ich die Autobahnen befahre in eine einzige HTML-Variable ausgegeben werden.
Den statischen Text der kommt falls keine Meldungen vorhanden sind hab ich auch entfernt um Platz zu sparen.
Ich bin mir bewusst, dass es sich bei den Anpassungen nicht um ein geniales Meisterwerk handelt, aber vielleicht nutzt es ja jemanden was der einen ähnlichen Anwendungsfall hat und sich nicht viel mit PHP befasst.:slight_smile:

<?
    // TODO: es sind mal img mit Werbung mit gekommen. TODO: Diese rausfiltern

    // liste der variablen und deren url abfragen
    //
    $variable_list = array(
    1 => "http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=A60",
    2 => "http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=A643",
    3 => "http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=A66",
    4 => "http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=A648"
    );
    
    
$str = "<table width='90%' align='left'><tr><td>";  // Farbe anpassen oder style entfernen
$str = $str."Verkehrsmeldungen von ".date("H:i",time())."</td></tr>";
$str = $str."<tr><td>";
   // Datenausgabe
    while ($varURL = current($variable_list))
    {
        $str = $str.getTrafficMessage($varURL);
        next($variable_list);
    }
    $str = $str."</td></tr>";
   $str=$str."</table>";
   SetValue(23901, utf8_decode($str));

// aus den links von http://iphone.verkehrsinfo.de
//
// spezielle strasse aktuell genutzt
// http://iphone.verkehrsinfo.de/showmessages.php?c=1&street=A2
//
// niedersachsen für später
// http://iphone.verkehrsinfo.de/showmessages.php?c=1&bl=258
//
// Parameter: URL - vollständige URL welche die Daten zurückgibt
//
function getTrafficMessage($value)
{
    $meldung = file_get_contents($value);
    $laenge = strpos($meldung,"www.verkehrsinfo.de<br>") - 40 - strpos($meldung,"</head>") +7 ;

    echo substr($meldung,strpos($meldung,"</head>")+7,$laenge);
    // head block und (C) entfernen
    $message=substr($meldung,strpos($meldung,"</head>")+7,$laenge);
	 $partstr="";
    // prüfen ob <li> vorkommen, dann liegen auch meldungen vor
    if (strpos($meldung,"<li>")>0)
    {
        // es liegen welche vor also meldungen anhängen
       $partstr=$message;
    }
    else
    {
       // keine Meldung, um Platz zu sparen wird im Gegensatz zum Originalscript kein statischer Text ausgegeben
    }

    //echo $str;
    return $partstr;
}
?>

Kurz zur Erläuterung:
Da die Meldungen zu den Autobahnen nicht mehr in unterschiedliche Variablen ausgegeben werden, wird der Schlüssel im Array nicht mehr für die Variablen-ID genutzt. Hier sind einfach nur noch fortlaufenden Zahlen.
Die Object-ID der Ausgabevariable taucht nur einmalig bei SetValue(23901, utf8_decode($str)); auf.

iphone.verkehrsinfo.de“ ist jetzt „verkehrsinfo.de/mobil

Ein Austausch der Adressen im Skript löst das Problem aber nicht, offenbar wurde auch noch mehr geändert. :confused:

Grüße
galleto

probiere mal alles vor dem Fragezeichen durch das hier zu ersetzen, ob es dann geht:
Verkehrsinformationen

würde ich mal denken, ohne es selbst mal auszuprobieren

Im Moment kann ich es nicht testen. Aber wie gesagt, es wurde noch mehr geändert. Das „Zuschneiden“ der Meldungen für die Webfrontausgabe klappt deshalb auch nicht mehr. Auch die Prüfung, ob überhaupt Meldungen vorliegen, geht deshalb jetzt ins Leere (kein <li> mehr). Außerdem fehlen die Symbole.

Ich habe zwar gestern Abend das Skript wieder grob zum Laufen gebracht, aber neben den fehlenden Symbolen gibt es noch ein Problem mit den Sonderzeichen. Wahrscheinlich wird es mit ein paar Anpassungen nicht getan sein. Schade.

Grüße
galleto

Stimmt, habe gerade mal geschaut. Das CGI Script scheint es nicht mehr zu geben.

Evtl. kommt man über ein auslesen der Hauptseite ran.

Stau, Baustellen, Blitzer, Verkehr, Webcams, Radarfallen, Routenplanerstreet=A2&UIN=

Die Ausgabe ist schön in <td class=„meldungszeile“ colspan=„4“> getrennt.

Funktioniert das Script noch bei jemandem?