Как добавить на сайт информер погоды текущего местоположения пользователя?

206
26 января 2018, 23:58

Хочу добавить на сайт простейший информер погоды текущего местоположения. Для этого в качестве кросс-доменного api взял openweathermap, зарегистрировался в бесплатном аккаунте и получил api ключ, получаю такой json ответ при конкретном задании города (Лондон).

api.openweathermap.org/data/2.5/weather?q=London,uk

А как задавать погоду для текущего положения пользователя, к примеру если он в Буркина-Фасо и об этом известно только его браузеру?

Answer 1

Воспользоватся сервисом который по IP находит город, тоже не 100% точность, но думаю в большинстве случаев укажет верный город.

// Функция используется чисто чтобы определить IP.
function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_X_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if(isset($_SERVER['REMOTE_ADDR']))
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
$ip = get_client_ip();
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$ip"));
$country = $geo["geoplugin_countryCode"];
$city = $geo["geoplugin_city"];

В переменных те параметры что вам нужны, город и код страны.

READ ALSO
Как вывести в twig функцию substr()?

Как вывести в twig функцию substr()?

Я поставил Twig, на чистый PHP, передал туда параметры и возник такой вопрос:

186
Объясните насчёт filter_input

Объясните насчёт filter_input

Не могу разобраться как работает php функция filter_inputНемного разобрался в PHP, но в документации дается тяжело

164
Создание баз “на лету”. MySQL, PHP

Создание баз “на лету”. MySQL, PHP

Никогда с таким не сталкивался, но появилась необходимость разработать систему, которая бы создавала сайты, что называется, на летуЕсли в двух...

151
Как вытащить все аудиозаписи с ВК

Как вытащить все аудиозаписи с ВК

Я хочу знать как можно распарсить аудиозаписи из ВКПервоначально я подумал скачать все через расширение по типу savefrom

204