radrigo 180 Опубликовано: 12 июля 2014 Рассказать Опубликовано: 12 июля 2014 Всем привет. Хочу вывести погоду при помощи API Яндекса на свой сайт, нашел в интернете простой модуль состоящий из двух файлов. Данный модуль работает отлично, однако хотелось бы вывести больше информации, скорость и направление ветра. Их значения в xml Яндекса скорость ветра - wind_speed направление ветра - wind_direction Прошу подсказки как это можно сделать. Заранее признателен вам за ответ. С уважением, Артём. Ниже содержимое файлов модуля. Содержимое файла weather.php <?php function get_weather ($city, $col = 10, $day_of_the_week_array = array(1 => 'пн', 2 => 'вт', 3 => 'ср', 4 => 'чт', 5 => 'пт', 6 => 'сб', 7 => 'вс'), $time_of_day = array(0 => 'утро', 1 => 'день', 2 => 'вечер', 3 => 'ночь')) { $data_file = 'http://export.yandex.ru/weather-ng/forecasts/'.$city.'.xml'; // Загружаем файл прогноза погоды для выбранного города $xml = simplexml_load_file($data_file); // загружаем xml файл через simple_xml $out = array(); // Массив вывода прогноза $counter = 0 ; // Счетчик количества дней, для которых доступен прогноз foreach ( $xml->day as $day ) { if ($counter == $col) {break;} $get_date = explode ("-" , $day['date']) ; $day_of_week = date("N", mktime(0, 0, 0, $get_date[1], $get_date[2], $get_date[0])) ; $out[$counter]['day'] = $get_date[2] ; $out[$counter]['month'] = $get_date[1] ; $out[$counter]['year'] = $get_date[0] ; $out[$counter]['day_of_week'] = $day_of_the_week_array[$day_of_week] ; for ($i=0;$i<=3;$i++) { if($day->day_part[$i]->temperature == '') { $get_temp_from = $day->day_part[$i]->temperature_from; $get_temp_to = $day->day_part[$i]->temperature_to; } else { $get_temp_from = (integer)$get_temp-1 ; $get_temp_to = (integer)$get_temp+1 ; } if($get_temp_from>0 ) {$get_temp_from = '+'.$get_temp_from ; } if($get_temp_to>0 ) {$get_temp_to = '+'.$get_temp_to ; } $out[$counter]['weather'][$i]['temp_from'] = $get_temp_from; $out[$counter]['weather'][$i]['temp_to'] = $get_temp_to; $out[$counter]['weather'][$i]['image'] = $day->day_part[$i]->{'image-v3'}; $out[$counter]['weather'][$i]['time_of_day'] = $time_of_day[$i] ; } $counter++ ; } return $out ; }?> Содержимое файла index.php <div class="pogpere"><h2>Погода в городе Гусеве</h2> <?php require_once 'weather.php' ; $w_city_id = 26714; // Идентификатор города (в нашем случае Москва) - можно узнать по адресу http://weather.yandex.ru/static/cities.xml $col = 1 ; // количество дней, на сколько нужен прогноз $day_of_the_week_array = array( 1 => 'в понедельник', 2 => 'во вторник', 3 => 'в среду', 4 => 'в четверг', 5 => 'в пятницу', 6 => 'в субботу', 7 => 'в воскресенье' ); // Массив дней недели (для вывода) $time_of_day = array( 0 => 'утро', 1 => 'день', 2 => 'вечер', 3 => 'ночь' ); // Массив времени суток (для вывода) $out = get_weather($w_city_id, $col, $day_of_the_week_array, $time_of_day) ; /* заполняем масив при помощи функции, первый параметр обязательный - индентификатор города другие параметры необязательны - в этом случае используется значения по умолчанию */ ?> <?php foreach ($out as $key => $value) { ?> <?php echo $value['day']; ?>.<?php echo $value['month']; ?>.<?php echo $value['year']; ?> <?php echo $value['day_of_week']; ?></div> <?php foreach ($value['weather'] as $key1 => $value1) { ?> <div class="pogpere"><?php echo $value1['time_of_day']; ?> <img src="http://yandex.st/weather/1.1.78/i/icons/48x48/<?php echo $value1['image']; ?>.png" width="48" height="48" /> <?php echo $value1['temp_from'] ; ?> ... <?php echo $value1['temp_to'] ; ?></div> <?php } ?> <?php } ?> Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.