Hier ein Beispiel um Wetterinformationen der Seite www.wetter.net auszulesen und die ermittelten Daten strukturiert als PHP-Array in einer IPS-Stringvariablen abzuspeichern.
Folgendes Besonderheiten:
- Auslesen von Webseiten ohne ‚WWW Reader‘ und ‚Text Parser‘
- mehrere Webseiten werden aufgerufen und analysiert
- die gesammelten Daten werden in einem PHP-Array mit Schlüsseln gespeichert
- das Array wird in einer IPS-String-Variablen gespeichert
- automatisches Anlegen der IPS-Dtring-Variablen falls diese nicht existiert
Skript: WETTER_www-wetter-net_GETDATA
[Edit]
Das aktuelle Skript v1.04 gibt es hier:
[Edit]
Das Skript kann dann in den Timer Wizard gehängt werden - bei mir läuft es z.B. alle 20 Minuten.
Um die Variable ‚WETTER_www-wetter-net.Data‘ für andere Skripte wieder in ein reguläres PHP-Array zu verwandeln kann das folgende Skript verwendet werden.
Skript: ShowData_www-wetter-net
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : ShowData_www-wetter-net.ips.php
Trigger :
Interval :
*/
$varname = "WETTER_www-wetter-net.Data"; // this ips-variable must be type 'String' !
$s = GetValueString( $varname);
$data = wddx_deserialize( $s);
print_r( $data);
?>
Das Skript erzeugt dann beispielsweise folgende Ausgabe im ‚Script Output Window‘:
Array
(
[VORHERSAGE] => Array
(
[1] => Array
(
[Zustand1] => 7
[Zustand1_Text] => Morgen: Regen
[Zustand2] => 6
[Zustand2_Text] => Tag: Regenschauer
[Zustand3] => 5
[Zustand3_Text] => Abend: bedeckt
[TempMax] => 18
[TempMin] => 6
[Niederschlag1] => 90
[Niederschlag2] => 50
[Niederschlag3] => 40
[RelFeuchte1] => 91
[RelFeuchte2] => 88
[RelFeuchte3] => 85
)
[2] => Array
(
[Zustand1] => 2
[Zustand1_Text] => Morgen: heiter
[Zustand2] => 2
[Zustand2_Text] => Tag: heiter
[Zustand3] => 1
[Zustand3_Text] => Abend: sonnig
[TempMax] => 16
[TempMin] => 8
[Niederschlag1] => 10
[Niederschlag2] => 10
[Niederschlag3] => 0
[RelFeuchte1] => 81
[RelFeuchte2] => 62
[RelFeuchte3] => 63
)
[3] => Array
(
[Zustand1] => 2
[Zustand1_Text] => Morgen: heiter
[Zustand2] => 3
[Zustand2_Text] => Tag: wolkig
[Zustand3] => 2
[Zustand3_Text] => Abend: heiter
[TempMax] => 18
[TempMin] => 10
[Niederschlag1] => 10
[Niederschlag2] => 20
[Niederschlag3] => 10
[RelFeuchte1] => 62
[RelFeuchte2] => 53
[RelFeuchte3] => 70
)
)
[UPDATEINFO] => Array
(
[RUNTIME] => 15
[BEGINDATE] => 29.10.2006
[BEGINTIME] => 18:20:00
[ENDDATE] => 29.10.2006
[ENDTIME] => 18:20:15
[MAXEXECUTIONTIME] => 300
)
)
Möchte man in eigenen Skripten nun z.B. auf die Regenwahrscheinlichkeit für den Abend des heutigen Tages zugreifen, kann man folgendes schreiben:
$niederschlag_heute_abend = $data['VORHERSAGE'][1]['Niederschlag3'];
Die weiteren Einträge des Array’s erklären sich, wenn man mal die Daten des Array’s mit der Seite von www.wetter-net vergleicht.
Gruss,
Olli