<?php /** * Wetter */ class wetter { /** * Erhalte die Wetterdaten und baue ein Array * * @param string Stadtname * @return array Wetterdaten */ function getWeather(){ // JSON holen $json_string = file_get_contents('api.json'); $parsed_json = json_decode($json_string, true); // Daten aus JSON für die nächsten vier Tage holen for($i = 0; $i <= 9; $i++){ $rain[$i] = $parsed_json['forecast']['simpleforecast'] ['forecastday'][$i]['pop']; $icon[$i] = $parsed_json['forecast']['simpleforecast'] ['forecastday'][$i]['icon_url']; $day[$i] = $parsed_json['forecast']['simpleforecast'] ['forecastday'][$i]['date']['weekday']; $tempHi[$i] = $parsed_json['forecast']['simpleforecast'] ['forecastday'][$i]['high']['celsius']; // Fahrradwetter? - Grundsätzlich ja. $fahrrad = '<b>Ja</b>'; // Vielleicht, wenn Regenwahrscheinlichkeit größer als 40% oder // Temperaturen nicht zwischen 15 und 24°C if($rain[$i] >= 40 || $tempHi[$i] <= 15 || $tempHi[$i] > 24){ $fahrrad = '<a href="'. WETTERSTATION .'">Vielleicht</a>'; } // Kein Fahrradwetter, wenn Regenwahrscheinlichkeit über 55% // oder Temperaturen nicht zwischen 10 und 27°C if($tempHi[$i] >= 27 || $tempHi[$i] <= 10 || $rain[$i] >= 55){ $fahrrad = 'Nein'; } // Array mit den Daten für einen Tag zusammenbauen $wetter[$i] = array( 'rain' => $rain[$i], 'icon' => $icon[$i], 'day' => $day[$i], 'tempHi' => $tempHi[$i], 'rad' => $fahrrad, ); // Arrays miteinander verknüpfen if(isset($wetter[$i-1])){ array_merge($wetter[$i-1], $wetter[$i]); } } return $wetter; } /** * Erstelle eine Tabellenzeile aus einem Array * * @param array array Auszuwertendes Array mit den Daten * @param schluessel string Schlüssel nach dem im Array gesucht wird * @param stringVor string Zeichen die vor dem String auftauchen sollen * @param stringNach string Zeichen die nach dem String auftauchen sollen * @param first string Was soll einmalig am Anfang stehen * * @return string */ function makeTable($array, $schluessel, $stringVor = NULL, $stringNach = NULL, $first = NULL){ $string = '<td>'.$first.'</td>'; foreach($array as $daten){ $string .= '<td>'; $string .= $stringVor . $daten[$schluessel] . $stringNach; $string .= '</td>'; } return ' <tr>' . $string . '</tr> '; } }