radrigo 180 Опубликовано: 17 февраля 2016 Рассказать Опубликовано: 17 февраля 2016 (изменено) Всем привет. Нашел на просторах интернета модуль погоды, погода берётся с Яндекса. Главное в модуле то, что он кэширует погоду. Код модуля <?php $city_id = 26714; //id города, вписать свой, можно узнать тут https://pogoda.yandex.ru/static/cities.xml - параметр city id= $cache_lifetime = 7200; //время кэша файла в секундах, 3600=1 час $cache_file = 'weather_'.$city_id.'.xml'; // временный файл-кэш function loadxmlyansex($city_id) { $url = 'http://export.yandex.ru/weather-ng/forecasts/'.$city_id.'.xml'; $userAgent = 'Googlebot/2.1 (+http://www.google.com/bot.html)'; $xml = 'weather_'.$city_id.'.xml'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); $output = curl_exec($ch); $fh = fopen($xml, 'w'); fwrite($fh, $output); fclose($fh); } if ( file_exists($cache_file) ) { $cache_modified = time() - @filemtime($cache_file); if ( $cache_modified > $cache_lifetime ) { //обновляем файл погоды, если время файла кэша устарело loadxmlyansex($city_id); } } else { //если нет файла погоды вообще, закачиваем его loadxmlyansex($city_id); } ?> <?php if(file_exists($cache_file)): $data = simplexml_load_file($cache_file); ?> <style type="text/css"> html, body {margin:0px;padding:0px;border:none;font-family:Tahoma, "Trebuchet MS", Helvetica, sans-serif;line-height} .vsepog {width:1000px; height:63px;background:#FFFFFF url(/images/icons.png) 0 -455px} .pogpere{float:left;width:206px;text-align:center;color:#FFFFFF;font-size:11px} .pogpere p{height:22px;font-weight:bold;padding-bottom:8px;margin:5px 0 7px;color:#000000;font-size:13px;} .pogpere p img{margin:0 5px -12px 9px} .poggl{width:150px;float:left;margin:0 0 0 25px;font-size:11px;color:#FFFFFF} .poggl p{font-weight:bold;font-size:15px;color:#000000;margin:10px 0 0;height:32px} .poggl span{font-size:12px} .poggl a{color:#000;text-decoration:none;-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;-moz-transition-duration:0.5s;transition-duration:0.5s} .poggl a:hover{color:#008ED6} </style> <div class="vsepog"> <?php $counter = 0 ; foreach($data->day as $day): if($counter == 1) break;?> <div class="poggl"><p><a target="_top" href="/pogoda/3995-gusev.html">Погода в Гусеве »</a></p> <?php echo getDayDate($day['date']);?></div> <?php for($i = 0;$i < 4;$i++): $img = $day->day_part[$i]->{'image-v3'};?> <div class="pogpere"><p>утро<img src="img/<?php echo $img;?>.png" width="30" height="30" /><?php echo getTempSign($day->day_part[$i]->{'temperature-data'}->avg);?> °C</p> <?php echo getWindDirection($day->day_part[$i]->wind_direction).' '.$day->day_part[$i]->wind_speed;?> м/с, <?php echo $day->day_part[$i]->pressure;?> мм рт. ст.</div> <?php endfor;?> <?php $counter++ ; endforeach;?> </div> <?php endif; // получаем локализованную дату function getDayDate($date) { $date = strtotime($date); $months = array('','01','02','03','04','05','06','07','08','09','10','11','12'); $days = array('<span>в воскресенье</span>','<span>в понедельник</span>', '<span>во вторник</span>', '<span>в среду</span>', '<span>в четверг</span>', '<span>в пятницу</span>', '<span>в субботу</span>'); return (int)date('d',$date).'.'.$months[date('n', $date)].' '.$days[date('w', $date)]; } // получаем знак температуры function getTempSign($temp) { $temp = (int)$temp; return $temp > 0 ? '+'.$temp : $temp; } // получаем направления ветра function getWindDirection($wind) { $wind = (string)$wind; $wind_direction = array('s'=>'южн','n'=>'сев','w'=>'зап','e'=>'вос','sw'=>'ю-з','se'=>'ю-в','nw'=>'с-з','ne'=>'с-в'); return $wind_direction[$wind]; } ?> А это его результат http://гусев.рф/engine/modules/pogoda/cesh/pog_cesh_utf.php Как можете наблюдать в каждом блоке показывает утро. Подскажите как сделать чтоб в блоках показывало поочерёдно: утро, день, вечер и ночь Заранее признателен всем за ответ. Изменено 17 февраля 2016 пользователем radrigo 1 Цитата Ссылка на сообщение Поделиться на других сайтах
odys 384 Опубликовано: 17 февраля 2016 Рассказать Опубликовано: 17 февраля 2016 5 часов назад, radrigo сказал: Подскажите как сделать чтоб в блоках показывало поочерёдно: утро, день, вечер и ночь что не так-то? 1 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 18 февраля 2016 Рассказать Опубликовано: 18 февраля 2016 Автор В 17.02.2016в16:07, odys сказал: что не так-то? Спасибо за ответ. Вчера разобрался. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.