| 
<?php
 class weather {
 
 /**
 * Api key from wunderground.com
 *
 * @var string
 */
 private $apiKey = '';
 private $get = 'conditions';
 
 /**
 * Your lang
 *
 * @var string
 */
 private $lang = 'PL';
 
 /**
 * Initialize country or state
 *
 * @var string
 */
 private $location = 'Poland';
 
 /**
 * Initialize city
 *
 * @var string
 */
 private $city = 'Belchatow';
 private $json;
 
 public function __construct() {
 $this->getAllWeather();
 }
 
 /**
 * Get weather from api ,decode and save in $json
 */
 private function getAllWeather() {
 $apiUrl = 'http://api.wunderground.com/api/' . $this->apiKey . '/' . $this->get . '/lang:' . $this->lang . '/q/' . $this->location . '/' . $this->city . '.json';
 $this->json = json_decode(file_get_contents($apiUrl));
 }
 
 /**
 * Get weather icon with html tag if $imgTag is true
 *
 * @param bool $imgTag add tag if true
 * @return string
 */
 public function getWeatherIcon($imgTag = false) {
 $img = $this->json->current_observation->icon_url;
 if ($imgTag) {
 $img = "<img src='" . $img . "'/>";
 }
 return $img;
 }
 
 /**
 * Get temperature celcius if $c is true
 *
 * @param bool $c
 * @return string
 */
 public function getTemperature($c = true) {
 if ($c) {
 $out = $this->json->current_observation->temp_c;
 } else {
 $out = $this->json->current_observation->temp_f;
 }
 
 return $out;
 }
 
 /**
 * Get satelite .gif
 *
 * @param bool $imgTag
 * @return string
 */
 public function getSateliteImage() {
 $img = file_get_contents('http://api.wunderground.com/api/' . $this->apiKey . '/animatedsatellite/q/' . $this->location . '/' . $this->city . '.gif?key=sat_ir4&basemap=1&timelabel=1&timelabel.y=10&num=5&delay=50&radius=200');
 $img = '<img src="data:image/gif;base64,' . base64_encode($img) . '"/>';
 
 return $img;
 }
 
 /**
 * Set Language, http://www.wunderground.com/weather/api/d/docs?d=language-support
 *
 * @param string $lang
 */
 public function setLang($lang) {
 $this->lang = $lang;
 }
 
 /**
 *
 * @param string $location
 * @param string $city
 */
 public function setLocation($location, $city) {
 $this->location = $location;
 $this->city = $city;
 }
 
 /**
 * Get city name and country/state
 *
 * @return string
 */
 public function getLocation() {
 return $this->city . ', ' . $this->location;
 }
 
 /**
 *
 * @param string $apiKey
 */
 public function setApiKey($apiKey) {
 $this->apiKey = $apiKey;
 }
 
 }
 ?>
 
 |