Загрузка погоды из Яндекса

4k
Алексей,
Загрузка погоды из Яндекса

//pogoda.yandex.ru/static/cities.xml больше нет, официальное API очень ограничено, виджеты некрасивые, но решение есть - костыли :) В статье пример кода как достать погоду с яндекса используя всего пару запросов.

//pogoda.yandex.ru/static/cities.xml больше нет, официальное API очень ограничено, виджеты некрасивые, но решение есть - костыли :)

Пример кода как достать погоду с яндекса используя всего пару запросов.

// Получаем ID города через поиск
$url = 'https://suggest-maps.yandex.ru/suggest-geo?callback=jQuery&v=8&lang=ru_RU&search_type=weather&part='.urlencode('Москва');
$getCities = file_get_contents($url);

$getCities = str_replace('jQuery(', '', $getCities);
$getCities = str_replace('])', ']', $getCities);
$arCities = json_decode($getCities, true);

// Получаем погоду найденных городов
foreach($arCities as $arCity) {
	$weatherXml = simplexml_load_file('https://export.yandex.ru/bar/reginfo.xml?region='.$arCity['geoid'].'&lang=ru');
	// Дальше уже обрабатываете полученный xml и выводите погоду
}

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

Для 1С-Битрикс есть готовый модуль, основанный на способе выше http://marketplace.1c-bitrix.ru/abudagov.weather/

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 19 сентября 2019
костыли, seo, готовые модули
Поделиться
Похожие статьи
Скрываем ссылки на внешний сайты c помощью js
Простой jQuery скрипт для замены span[data-link] на a[href].
Читать дальше » 0
Алексей,
Отключение скриптов аналитики для Google PageSpeed
Исправляем правила эффективного использования кеша для metrika и analytics.js при проверке Google Pa...
Читать дальше » 0
Алексей,
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
//pogoda.yandex.ru/static/cities.xml больше нет, официальное API очень ограничено, виджеты некрасивые, но решение есть - костыли :) В статье пример кода как достать погоду с яндекса используя всего пару запросов.