json Hilfe gesucht

Hallo zusammen,

ich versuche mit der API von OpenWeatherMap die Daten der vergangenen Stunde / Tag auszuwerten.

$content = Sys_GetURLContent("http://api.openweathermap.org/data/2.5/history/city?id=2868788&lang=de&mode=json&units=metric&type=day&start=1417809600&cnt=1");
$json = json_decode($content);
print_r($json);

Wie kann ich auf die Einzelnen Werte zugreifen? Bin auch mit viel probieren nicht weiter gekommen.

Kann mir Bitte Jemand auf die Sprünge helfen?

z.b. so

echo $json->list[0]->main->temp;

Hallo Spoosie,

vielen Dank.

Abend!

Habe mal ein kleines Beispiel-Skript zum „Klauen“ und weiterverwenden erstellt :slight_smile:

<?
// OpenWeatherMap.org  --  http://openweathermap.org/city/2950159  --  (Berlin)
$locationID = 2950159;   // hier die eigene ID eintragen - einfach vom eigenen Wohnort aus der URL rauskopieren

$content = Sys_GetURLContent("http://api.openweathermap.org/data/2.5/weather?id=".$locationID."&units=metric&lang=de&type=day");
$json = json_decode($content);
//print_r($json);


echo "Aktuelle Wetterdaten für ".$json->name."

";

echo "Wetter: ".$json->weather[0]->description."
";

echo "Temperatur: ".$json->main->temp."°C"."
";
echo "Temperatur (min.): ".$json->main->temp_min."°C"."
";
echo "Temperatur (max.): ".$json->main->temp_max."°C"."
";

echo "Luftdruck: ".$json->main->pressure."hpa"."
";
echo "Luftfeuchtigkeit: ".$json->main->humidity."%"."
";

echo "Windgeschwindigkeit: ".$json->wind->speed." Meter/Sekunde"."
";
echo "Windrichtung: ".$json->wind->speed." Grad"."
";

?>

Dokumentation zur API findet sich hier:
http://openweathermap.org/api
http://openweathermap.org/current

Grüße,
Chris

Hallo zusammen,

ich such mir gerde wieder einen Wolf und komme nicht weiter.
ich möche die Seite

auslesen.
Leider komme ich weder mit curl noch mit Sys_GetURLContent weiter. Vermultich blick ichs trotz der vielen Anwendungen im Forum einfach nicht. Der WWWReader scheidet aus, da sich die URL täglich ändert.

Kann mir bitte jemand den Anfang machen, damit ich die Tablellenzeile auslesen kann?

Hi!

Der WWWReader scheidet nicht aus, weil man die URL über ein Skript setzen kann :wink:

<?

$WWWReaderID = 10188 /*[WWW Reader (Webseiten auslesen)]*/;
$url = "http://www.heise.de";
IPS_SetProperty($WWWReaderID, "URL", $url); 
IPS_ApplyChanges($WWWReaderID);
WWWReader_UpdatePage($WWWReaderID); 

?>

Danach einfach den Text Parser und ab gehts :slight_smile:

…aber du kannst im Forum auch noch viele andere Möglichkeiten finden um Webseiten auszulesen…sogar mit Beispiel-Skripten :cool:

Grüße,
Chris

Hallo Bayaro,

danke für den Tipp mit dem wwwReader.

Da ich jedoch mehrere Werte auslesen möchte fände ich die Variante Sys_GetURLContent besser.

Wenn ich versuche wie unten

$content = Sys_GetURLContent("http://www.onvista.de/onvista/times+sales/popup/historische-kurse/?notationId=31117979&dateStart=19.12.2014&interval=M1&assetName=%C3%96lpreis&exchange=Deutsche%20Bank%20Indikation");

$json = json_decode($content);

print_r($json);

bekomm ich leider keine Ausgabe.

Wenn ich die URL direkt im Browser eingebe bekomm ich angezeigt was ich möchte. Die Werte stehen auch im Quelltext.

Warum bekomm ich mit print_r($json) keine Ausgabe wie unten mit der Wetterseite?

Noch einen Tipp?

Vielleicht weil es kein Json ist ?
Was sagt den print_er($content);
Michael

               Kurshistorie - OnVista                       if(typeof jQuery == 'undefined'){ document.write(unescape("%3Cscript src='//s.onvista.de/js-63203/base/src/lib/jquery.js'%3E%3C/script%3E")); } if(typeof require == 'undefined'){ document.write(unescape("%3Cscript src='//s.onvista.de/js-63203/base/src/lib/require.js'%3E%3C/script%3E")); }  require.config({ baseUrl: "//s.onvista.de/js-63203", paths: {"ivw":"//script.ioam.de/iam","conversion_async":"//www.googleadservices.com/pagead/conversion_async","base":"base/src","web":"web/src","mobile":"mobile/src","templates":"/templates","jquery":"//s.onvista.de/js-63203/base/src/lib/jquery","OnVista":"//s.onvista.de/js-63203/base/src/lib/OnVista","jqueryui":"//s.onvista.de/js-63203/base/src/lib/jquery-ui","unveil":"//s.onvista.de/js-63203/base/src/lib/jQueryUnveil","moment":"//s.onvista.de/js-63203/base/src/lib/moment","modernizr":"//s.onvista.de/js-63203/base/src/lib/modernizr","mustache":"//s.onvista.de/js-63203/base/src/lib/mustache","jqueryCookie":"//

Im Ausgabefenster sehe ich danach noch ein „s“, das sich aber nicht markieren / kopieren lässt.

Woran erkenn ich denn obs json ist? utf-8 steht jedenfalls im head.

Teile der Ausgabe finde ich auch im Quelltext. Kann es sein, dass der irgend wo abgeschnitten wird?

UTF-8 ist die Zeichensatz Codierung nicht die verwendete ‚Sprache‘ / Beschreibung der Daten.
Was du dort siehst ist der Quellcode der Website. In dem Ausschnitt ist z.B. JavaScript zu sehen.
Die Konsole hat unten mehrere Ansichten der Ausgabe und einen abschaltbaren HTML-Filter.
Da du vermutlich HTML verarbeiten willst/musst ist Json der falsche Weg und somit der falsche Thread.
Michael
PS: versuche den Inhalt von content mit preg_match oder dem DOMDocument zu verarbeiten.

Hallo Nall chan,

vielen Dank für Deine Erklärungsversuche. Ich hätt wohl erst mal lesen sollen was json ist. Hab nur nach json_decode gesucht, und das stand halt nur utf-8 …
Hab bisher nur themenbezogen abgeschrieben und angepasst ohne Ahnung davon zu haben was ich mache.

Habs jezt mit Codeschnipseln aus verschiedenen Foren mit preg_match_all halbwegs so hinbekommen, dass ich die Werte in ein Array bekomme.

Abend Wolfgang,

GENAU SO läuft der Einstieg in IPS und PHP :smiley: Also wenn man vorher keine Ahnung hatte :smiley:

Erstmal nur „kopieren“, dann anfangen selbst anzupassen und am Ende kommen die eigenen Skripte :cool: Man muss nur wollen und es auch mal versuchen!

Weiterhin viel Spaß mit IPS :slight_smile:

Grüße,
Chris