Перейти к публикации

Рекомендованные сообщения

Всем привет.

Хочу вывести погоду при помощи 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 } ?>

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...