Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
-3 / 0 / 1
Регистрация: 22.01.2016
Сообщений: 309

Погода для сайта

11.05.2017, 20:09. Показов 1996. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Огромная просьба, уделите минутку, научите выводить погоду на сайт по этой форме.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// файл в котором будет храниться информация о прогнозе и курсах валют
        $file = "./inc/informer.txt";
        $informer = file($file);
        $informer = unserialize($informer[0]);
        $we = $informer['info'];
        // запрос информации с чужих серверов будет раз в час, чтобы не создавать никому неудобств
        if ($informer['lastupdate']<time()-3600){
            // в этом массиве живут ID населенных пунктов по версии Яху, для которых нужна погода
            $loc = array(2123260);
            if (count($loc) > 0){
                $yql = "select * from weather.forecast where woeid in (".implode(",", $loc).") and u='c'";
                // спрашиваем погоду у Яху
                if ($lines = file_get_contents("https://query.yahooapis.com/v1/public/yql?q=".urlencode($yql)."&format=json")){
                    $ln = object_to_array(json_decode($lines));
                    $we = array();
                    foreach ($ln['query']['results']['channel'] as $key => $value) {
                        $tmp = array();
                        $tmp['loc_id'] = str_replace("http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-", "", $value['link']);
                        $tmp['loc_id'] = str_replace("/", "", $tmp['loc_id']);
                        $tmp['s'] = $value['item']['condition']['code'];
                        foreach ($districts as $dd) {
                            if ($tmp['loc_id'] == $dd['weather_id']){
                                $tmp['name'] = $dd['name'];    
                                break;
                            }
                        }
                        $tmp['t'] = $value['item']['condition']['temp'];
                        $tmp['rh'] = $value['atmosphere']['humidity'];
                        $tmp['wn'] = $value['wind']['direction'];
                        // конвертируем скорость ветра в метры в с м/с
                        $tmp['ws'] = intval($value['wind']['speed']/3.6);
                        // конвертируем атмосферное давление в мм ртутного столба
                        $tmp['p'] = intval(($value['atmosphere']['pressure']/1000000+1)*750.06375541921);
                        $we[] = $tmp;
                    }
                    $informer['info'] = $we;
                }
            }
 
            $date = date("d/m/Y");
            $link = "https://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
            // спрашиваем центробанк о курсах валют за сегодня
            $content = file_get_contents($link, false, stream_context_create($arrContextOptions));
            // Разбираем содержимое, при помощи регулярных выражений
            $pattern = "#<Valute ID="([^"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
            preg_match_all($pattern, $content, $out, PREG_SET_ORDER);
            $dollar = "";
            $euro = "";
            foreach($out as $cur) {
                if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]);
                if($cur[2] == 978) $euro   = str_replace(",",".",$cur[4]);
            }
            $informer['usd'] = sprintf("%01.2f", $dollar);
            $informer['eur'] = sprintf("%01.2f", $euro);
            $informer['lastupdate'] = time();
            file_put_contents($file, serialize($informer));
        }
        // в этом массиве собраны курсы валют и погода
        print_r($informer);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2017, 20:09
Ответы с готовыми решениями:

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

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

Погода для сайта
Здравствуйте. Нужно сделать погоду для сайта, а именно чтобы выводилось по рандомно по 4 из 16 городов. Выводились только название...

1
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
12.05.2017, 19:57
В строке 14 возвращаются пустые результаты, возможно неверно указан location
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2017, 19:57
Помогаю со студенческими работами здесь

Погода с сайта(парсинг)
Не могу запарсить страничку( Друзья! Сидела вчера и сижу до сих пор. Я новичок как в программировании так и на этом форуме) Проблема...

Имеются описания: Сезон = (зима, весна, лето, осень) Погода = (тепло, холодно) По сезону ответить какова погода Delphi
Имеются описания: Сезон = (зима, весна, лето, осень) Погода = (тепло, холодно) По сезону ответить какова погода Delphi

Вопросы для теста-погода
Мне задали написать тест-программу Вот само задание: напишите программу, которая задает вопросы о погоде и, согласно ответов, помогает...

Погода по ip
Добрый день, уважаемые форумчане. Задача - отображать на сайте прогноз погоды на данный момент в зависимости от местоположения...

Погода в python
Нужна погода на сегодня в python. Облазил весь интернет. Большинство советуют через API сайта openwethermap, но для этого нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru