Skip to content
26.09.2023
  • IT решения
  • Tech — тренды
  • Мировые новости IT

Технологии

Primary Menu
  • IT решения
  • Tech — тренды
  • Мировые новости IT
  • Home
  • IT решения
  • IT решения

Парсер яндекс погоды на PHP

admin 26.01.2021 1 min read

yaweather-2144874

17 сентября 2019 PHP

Рабочий пример PHP парсера, который получает погоду с Яндекса по ID города. Скрипт сохраняет данные в файле кеша на сайте, и обновляет его раз в час. Так же расскажу как выводить на сайте собственные иконки погоды вместо стандартных от Яндекса.

Шаг 1. Получить id города

На самом деле .xml файл экспорта, который мы будем использовать для получения погоды не документирован Яндексом, и я так понимаю используется только самими разработчиками Яндекс. Поэтому его использование несколько осложнено и может меняться.

Ранее узнать id города было несколько проще, он высвечивался в адресной строке при просмотре погоды. Список наиболее часто используемых регионов можно посмотреть здесь

Если нужного региона не нашли в списке, то есть другой вариант. В поиске Яндекс нажмите иконку настроек и измените регион.

weather_1-6503052

Нажмите найти и в адресной строке увидите параметр rstr. Его значение и будет id нужного региона. Так же в параметре lr всегда указан ваш текущий регион, поэтому можно использовать и его.

weather_2-9014241

Функция для получения погоды с Яндекса

Вам необходимо задать $cache_life — время жизни кеша (по умолчанию 3600 сек.). Это время, через которое скрипт будет обновлять данные с Яндекс.Погоды. В $city указать id ранее полученного региона (по умолчанию Москва). И в $cache_file путь к файлу кеша (по умолчанию /log/weather.txt).

Теперь при обращении к функции getWeatherDataXml() можно получить и вывести $weather['temp'] — данные температуры , $weather['image'] — иконку и $weather['weather_type'] — тип погоды.

Собственные иконки погоды

Скрипт указанный выше полностью готов к работе. Но иногда стандартные иконки Яндекса могут не вписаться в дизайн сайта. Поэтому привожу пример с кастомными иконками погоды.

Иконки размещаем в папке /images/weather_ico/ и подменяем ссылку из Яндекса на свою. Так же я использую иконки .svg. И следующей строкой меняем расширение png на svg.

$weather['image'] = str_replace("https://yastatic.net/weather/i/icons/blueye/24/", '/images/weather_ico/', $weather['image']);
 $weather['image'] = str_replace("png", "svg", $weather['image']);

В папке /images/weather_ico/ находятся файлы иконок. Вот список их имен и значений с примером исходной иконки:

1-4541559bkn_-ra_d.svg — облачно с прояснениями, небольшой дождь (день)
2-4250805bkn_-ra_n.svg — облачно с прояснениями, небольшой дождь (ночь)
3-3169001bkn_-sn_d.svg — облачно с прояснениями, небольшой снег (день)
4-3804263bkn_-sn_n.svg — облачно с прояснениями, небольшой снег (ночь)
5-3891222bkn_d.svg — переменная облачность (день)
6-4963942bkn_n.svg — переменная облачность (ночь)
7-5534558bkn_ra_d.svg — переменная облачность, дождь (день)
8-8049904bkn_ra_n.svg — переменная облачность, дождь (ночь)
9-4861017bkn_sn_d.svg — переменная облачность, снег (день)
10-1206240bkn_sn_n.svg — переменная облачность, снег (ночь)
11-1814069bl.svg — метель
12-6347220fg_d.svg — туман
13-2178211ovc.svg — облачно
14-4889383ovc_-ra.svg — облачно, временами дождь
15-2510287ovc_-sn.svg — облачно, временами снег
16-5907983ovc_ra.svg — облачно, дождь
17-1758565ovc_sn.svg — облачно, снег
18-2584336ovc_ts_ra.svg — облачно, дождь, гроза
19-4303498skc_d.svg — ясно (день)
20-4435905skc_n.svg — ясно (ночь)

Continue Reading

Previous: CSS статьи и уроки по веб-программированию
Next: HTML статьи и уроки по веб-программированию — Страница 2 из 2

Related Stories

Филе Трески Балтийского Моря: Вкусовая Роскошь Северных Вод v-2
1 min read
  • IT решения
  • Tech - тренды
  • Мировые новости IT

Филе Трески Балтийского Моря: Вкусовая Роскошь Северных Вод

30.08.2023
Робот-пылесос Xiaomi: Инновации в Уборке x
1 min read
  • IT решения

Робот-пылесос Xiaomi: Инновации в Уборке

27.08.2023
Пошаговая Инструкция по Открытию Онлайн-Школы zz
1 min read
  • IT решения
  • Tech - тренды
  • Мировые новости IT

Пошаговая Инструкция по Открытию Онлайн-Школы

27.08.2023

You may have missed

Филе Трески Балтийского Моря: Вкусовая Роскошь Северных Вод v-2
1 min read
  • IT решения
  • Tech - тренды
  • Мировые новости IT

Филе Трески Балтийского Моря: Вкусовая Роскошь Северных Вод

30.08.2023
Робот-пылесос Xiaomi: Инновации в Уборке x
1 min read
  • IT решения

Робот-пылесос Xiaomi: Инновации в Уборке

27.08.2023
Пошаговая Инструкция по Открытию Онлайн-Школы zz
1 min read
  • IT решения
  • Tech - тренды
  • Мировые новости IT

Пошаговая Инструкция по Открытию Онлайн-Школы

27.08.2023
SEO Компания: Ключ к Онлайн Продвижению и Успеху Бизнеса kk-2
1 min read
  • IT решения
  • Tech - тренды
  • Мировые новости IT

SEO Компания: Ключ к Онлайн Продвижению и Успеху Бизнеса

07.08.2023
  • IT решения
  • Tech — тренды
  • Мировые новости IT
  • IT решения
  • Tech — тренды
  • Мировые новости IT
Copyright © All rights reserved. | MoreNews by AF themes.