Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- - Get Weather for location (openweathermap)
- - Gets the weather, temperature, pressure, humidity etc for the specified location
- $location - The location to get the weather of ie. "New York City,NY"
- $format - What to return
- => 0 - Cloudiness
- => 1 - Temperature (fahrenheit)
- => 2 - Air Pressure
- => 3 - Humidity
- => 4 - Min Temperature (fahrenheit)
- => 5 - Max Temperature (fahrenheit)
- => 6 - Visibility
- => 7 - Wind Speed
- => 8 - Wind Direction (degrees)
- => 9 - Sunrise (unix time)
- => 10 - Sunset (unix time)
- $timeout - How many seconds to wait for a response before giving up
- */
- public function getWeather($location, $format = 0, $timeout = 5) {
- $ch = curl_init();
- $location = str_replace(" ", "%20", $location);
- curl_setopt($ch, CURLOPT_URL, "http://api.openweathermap.org/data/2.5/weather?q=" . $location);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
- $data = curl_exec($ch);
- curl_close($ch);
- $arr = json_decode($data, true);
- if (!isset($arr["message"])) {
- $r_weather = $arr["weather"][0]["description"];
- $r_temp = $arr["main"]["temp"];
- $r_pressure = $arr["main"]["pressure"];
- $r_humidity = $arr["main"]["humidity"];
- $r_temp_min = $arr["main"]["temp_min"];
- $r_temp_max = $arr["main"]["temp_max"];
- $r_visibility = 10000;
- $r_wind_speed = $arr["wind"]["speed"];
- $r_wind_dir = $arr["wind"]["deg"];
- $r_sunrise = $arr["sys"]["sunrise"];
- $r_sunset = $arr["sys"]["sunset"];
- $r_temp = $this->convertTemperature("k", "f", $r_temp);
- $r_temp_min = $this->convertTemperature("k", "f", $r_temp_min);
- $r_temp_max = $this->convertTemperature("k", "f", $r_temp_max);
- switch ($format) {
- case 0: return $r_weather; break;
- case 1: return $r_temp; break;
- case 2: return $r_pressure; break;
- case 3: return $r_humidity; break;
- case 4: return $r_temp_min; break;
- case 5: return $r_temp_max; break;
- case 6: return $r_visibility; break;
- case 7: return $r_wind_speed; break;
- case 8: return $r_wind_dir; break;
- case 9: return $r_sunrise; break;
- case 10: return $r_sunset; break;
- }
- // default
- return $arr;
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement