Работа с API погоды в php. Получение прогноза погоды на неделю

Введение

Работа с API погоды в php. Получение прогноза погоды на неделюСегодня наткнулся на интересный зарубежный сервис — openweathermap.org. Этот сервис предоставляет всем разработчикам приложений и сайтов бесплатные API для получения разнообразной информации о погоде. Самое интересное, это то что сервис полностью бесплатный и не имеет ни каких ограничений по количеству обращений. База городов огромная, я попробовал несколько маленьких городов из нескольких десятков стран — информация всегда возвращалась, правда не знаю на сколько точная :).

Еще одним из преимуществ этого сервиса, является очень удобная возможность осуществлять поиск города: поиск можно производить по id города, по названию(в названии можно использовать как латиницу так и кириллицу) и по географическим координатам. Самый удобный способ на мой взгляд — это поиск по названию города, именно этот способ я и реализовал в примере.

Работа с API погоды в php. Код

Ниже приведу пример кода для получения погоды в городе Брянск:

// кодировка страницы
header('Content-Type: text/html;charset=UTF-8');

$city = "Bryansk"; // город. Можно и по-русски написать, например: Брянск
$mode = "json"; // в каком виде мы получим данные
$units = "metric"; // Единицы измерения. metric или imperial
$lang = "ru"; // язык
$countDay = 7; // количество дней. Максимум 14 дней

// формируем урл для запроса
$url = "http://api.openweathermap.org/data/2.5/forecast/daily?q=$city&mode=$mode&units=$units&cnt=$countDay&lang=$lang";
// делаем запрос к апи
$data = @file_get_contents($url);
// если получили данные
if($data){
	// декодируем полученные данные
	$dataJson = json_decode($data);
	// получаем только нужные данные
	$arrayDays = $dataJson->list;
	// выводим данные
	foreach($arrayDays as $oneDay){
		echo "Утром: " . $oneDay->temp->morn . "<br/>";	
		echo "Днем: " . $oneDay->temp->day . "<br/>";	
		echo "Вечером: " . $oneDay->temp->eve . "<br/>";	
		echo "Ночью: " . $oneDay->temp->night . "<br/>";	
		echo "Скорость ветра: " . $oneDay->speed . "<br/>";
		echo "Погода: " . $oneDay->weather[0]->description . "<br/>";
		echo "Давление: " . $oneDay->pressure . "<br/>";
		echo "Влажность: " . $oneDay->humidity . "<br/>";
		echo "<hr/>";
	}
}else{
	echo "Сервер не доступен!";
}
Рассказать друзьям:


Работа с API погоды в php. Получение прогноза погоды на неделю: 1 комментарий

  1. Огромное спасибо за рабочее решение!
    Разве что у них стал обязателен параметр appid

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*