В этой статье будет показываться как происходит работа с API погоды в PHP, использовать будем OpenWeatherMap API.
Получение ключа для OpenWeatherMap API:
Для того чтобы работать с OpenWeatherMap API, нужно получить ключ, для этого зарегистрируйтесь на этом сайте.
Регистрация проходит как обычно, просто вводите username, email и два раза пароль.
После этого вам предложат ввести имя организации и цель, для чего вы будите использовать этот API.
Нажимаем «Save», после этого вам будет доступен API ключ, для того что бы брать информацию из OpenWeatherMap.
Вот мой ключ, который я сделал для теста и статьи.
Работа с API погоды в PHP:
Теперь перейдём к работе с OpenWeatherMap API, суть работы будет в том, что мы отправляем GET запрос и в качестве ответа получаем JSON данные, но перед этим нужно настроить ссылку с запросом.
1 2 3 4 5 6 | // API ключ $apiKey = "fe57b721fd47b8600afac45a7829c1ea"; // Город погода которого нужна $city = "Moscow"; // Ссылка для отправки $url = "http://api.openweathermap.org/data/2.5/weather?q=" . $city . "&lang=ru&units=metric&appid=" . $apiKey; |
Теперь разберём этот код, что тут, сначала мы создаём переменную $apiKey
, который хранить в себе ключ для работы с API, дальше название города, который нам нужен.
Потом создаём URL с GET запросами, вот их и надо рассмотреть.
- q — Название города, у которого нужно получить погоду;
- lang — Язык данных;
- units — Тип градусов;
- appid — API ключ;
Это в целом всё что вам нужно, самое главное, не забудьте задать units
значение metric
, иначе у вас погода будет не в цельсиях а в фаренгейтах.
Если вам что то не понятно, то рекомендую прочитать часть учебника: PHP работа с формой.
Теперь перейдём к отправке запроса, для этого будем использовать стандартную библиотек PHP.
1 2 3 4 5 6 7 8 9 10 11 12 | // Создаём запрос $ch = curl_init(); // Настройка запроса curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); // Отправляем запрос и получаем ответ $data = json_decode(curl_exec($ch)); // Закрываем запрос curl_close($ch); |
Тут в целом не чего сложного нет, сначала создаёте запрос и потом настраиваете его, если вам не понятно настройка, то зайдите по этой ссылке.
После этого отправляем запрос и сразу же получаем JSON ответ и декодируем его в обычный PHP объект, с помощью json_decode, закрываем запрос.
Выводим на экран данные о погоде.
1 2 3 4 5 6 | <div class="weather"> <h2>Погода в городе <?php echo $data->name; ?></h2> <p>Погода: <?php echo $data->main->temp_min; ?>°C</p> <p>Влажность: <?php echo $data->main->humidity; ?> %</p> <p>Ветер: <?php echo $data->wind->speed; ?> км/ч</p> </div> |
Вот какой результат получился.
Как видите всё работает, таким образом вы можете получать данные из любого города, только нужно писать их название на английском, хотя я слушал что можно и на русском.
Вывод:
В этой статье вы прочитали как происходит работа с API погоды в PHP и как её получать выводить.