Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32

Корректировка информера погоды

07.06.2015, 11:19. Показов 2707. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Разбираю и шлифую прогноз погоды для сайта через API Яндекса и всё отлично получается (тьфу,тьфу,тьфу), но возникла у меня небольшая загвоздка и решил обратится к великим умам.
Вот index.php
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
<?php require_once 'weather/weather.php' ;
 
$w_city_id = 29634;
// Идентификатор города
 
$col = 1 ;
// количество дней, на сколько нужен прогноз
 
 
$time_of_day = array(
0 => 'утро',
1 => 'день',
2 => 'вечер',
3 => 'ночь'
); // Массив времени суток
 
 
 
$out = get_weather($w_city_id, $col, $time_of_day)  ;
/*
первый параметр обязательный - идентификатор города, другие параметры необязательны
*/
?>
 
 
<?php foreach ($out as $key => $value) { ?>
<br />
<?php foreach ($value['weather'] as $key1 => $value1) { ?>
<?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_to'] ; ?>°C
<br /><br />
<?php } ?>
<br /><br />
<?php } ?>
, а вот weather.php
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
<?php
 
 function get_weather ($city, $col = 10, $day_of_the_week_array = array(1 => 'пн', 2 => 'вт', 3 => 'ср', 4 => 'чт', 5 => 'пт', 6 => 'сб', 7 => 'вс'), $time_of_day = array(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=2;$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 ;
 
}?>
и всё у меня замечательно отображается и работает, кроме одного. Я вывожу всего два параметра на один день, день и вечер и вот для дня мне иконка нужна (с солнышком там, тучками), а для вечера нет, просто, что бы было "вечером +...°C", как убрать эту иконку подскажите.
А ещё для самых прошаренных в этом деле огромным человеческим спасибо будет если подскажите как вставлять свои иконки. (Побывал менять тут
PHP
1
<img src="http://yandex.st/weather/1.1.78/i/icons/48x48/<?php echo $value1['image']; ?>.png" width="48" height="48" />
), но что то ему не нравится и на сайте не отображает иконки.

Добавлено через 2 часа 30 минут
я ещё немного пошаманил и думаю тут проблема в следующем
PHP
1
$time_of_day = array(2 => '', 3 => 'вечером')
вот этот кусок кода выводится как единое целое, а что бы отображался день и вечер раздельно (с возможностью изменения отображения иконок и разным .css) его надо делать раздельно.... подскажите, как это лучше реализовать.

Добавлено через 5 часов 28 минут
смотрю просмотров много, а подсказки ни одной, может быть сложная задача или не правильно сформулирован вопрос, вы хоть подскажите в какую сторону копать, как сделать
PHP
1
$time_of_day = array(2 => '', 3 => 'вечером')
раздельным

Добавлено через 16 часов 5 минут
что то я так и не смог разобраться как разделить массив поэтому решил попробовать вывести дважды weather.php (сделав weather-day.php и weather-night.php), но и тут загвоздка weather-night.php не хочет выводится и выдёт ошибку
PHP
1
Fatal error: Cannot redeclare get_weather() (previously declared in /home/virtwww/w_9regions-ru_af59bc1a/http/views/9regions/weather/weather-day.php:3) in /home/virtwww/w_9regions-ru_af59bc1a/http/views/9regions/weather/weather-night.php on line 49
хотя в weather-night.php ни чего не менялось кроме
PHP
1
$time_of_day = array(3 => '')
, вывод в index.php
PHP
1
<?php require_once 'weather/weather-day.php' ;
и соответственно
PHP
1
<?php require_once 'weather/weather-night.php' ;
, кажется я что то перемудрил....
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2015, 11:19
Ответы с готовыми решениями:

Направильная кодировка информера погоды c Pogoda.mail
Решил поставить модуль информер погоды c Pogoda.mail на DLE 9.8. При просмотре модуль в неправильной кодировке отображается. В админке...

Корректировка оператора scanf, а точнее корректировка индексов
Я пытаюсь написать программу которая меняет индексы в операторе scanf на правильные индексы. То есть я сначала запоминаю переменные в...

создание информера
Как обычно создают информеры, что бы web-master мог скопировать код, и в итоге при вставке моего кода, получил мою информацию у себя на...

20
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 11:57
Название функции не должно быть одинаковым, в файле weather-day.php соответственно назови функцию get_weather_day, ну а для файла weather-night.php так же - назови функцию get_weather_night.
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 13:56  [ТС]
get_weather_day такой функции в документе не нашлось, а при замени всего day на night результата не дало, не могли бы вы привести пример или подробнее рассказать
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 14:02
Цитата Сообщение от SVgroup Посмотреть сообщение
get_weather_day такой функции в документе не нашлось
Ну так её создать надо.

Добавлено через 1 минуту
Вот где написано
PHP
1
function get_weather ($city, $col = 10, $day_of_the_week_array = array(1 => 'пн', 2 => 'вт', 3 =>//...
Вот здесь поменяй название.
И при вызове функции тоже название поменяй.

Добавлено через 49 секунд
При вызове - это здесь:
PHP
1
2
3
4
5
$out = get_weather($w_city_id, $col, $time_of_day) *;
/*
первый параметр обязательный - идентификатор города, другие параметры необязательны
*/
?>
Добавлено через 11 секунд
И в другом файле также.
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 14:06  [ТС]
ну получается $time_of_day на поменять на $time_of_night пробую ошибка остаётся или вы имеете виду все названия изменить?
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 14:07
Цитата Сообщение от SVgroup Посмотреть сообщение
ну получается $time_of_day на поменять на $time_of_night пробую ошибка остаётся или вы имеете виду все названия изменить?
Ну да.
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 14:11  [ТС]
что так
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
 <?php
 
 function get_weather ($city, $col = 1, $day_of_the_week_array = array(1 => 'пн', 2 => 'вт', 3 => 'ср', 4 => 'чт', 5 => 'пт', 6 => 'сб', 7 => 'вс'), $time_of_night = array(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;}
 
 
   for ($i=3;$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_night'] = $time_of_night[$i] ;
 
 
} $counter++ ;
}
 
 
return $out ;
 
}?>
что так
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
 <?php
 
 function get_weather ($city, $col = 1, $night_of_the_week_array = array(1 => 'пн', 2 => 'вт', 3 => 'ср', 4 => 'чт', 5 => 'пт', 6 => 'сб', 7 => 'вс'), $time_of_night = array(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->night as $night )  {
 
    if ($counter == $col) {break;}
 
 
   for ($i=3;$i<=3;$i++) {
 
 
 
   if($night->night_part[$i]->temperature == '') {
       
   $get_temp_from =  $night->night_part[$i]->temperature_from;
   $get_temp_to =  $night->night_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'] = $night->night_part[$i]->{'image-v3'};
    $out[$counter]['weather'][$i]['time_of_night'] = $time_of_night[$i] ;
 
 
} $counter++ ;
}
 
 
return $out ;
 
}?>
ошибка сохраняется (в индекс соответственно тоже менял)
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 14:14
Вот это менять надо: *function get_weather
Например на это: function get_weather_day
И на это (в другом файле): function get_weather_night
1
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 14:25  [ТС]
мои кони тихо скачут, спасибо вам. но появился у меня один нюанс в
PHP
1
$time_of_night = array(3 => ''))
в '' пишется время суток, ну раньше писалось, а сейчас пишу, не отображается, не подскажите что может быть?
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 14:30
Ну потому что у вас пустая строка в массив пишется. '' это пустая строка, а 'qwerty' это уже не пустая.
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 15:35  [ТС]
ну я добавил в index.php
PHP
1
2
3
4
5
6
$time_of_night = array(
0 => 'утро',
1 => 'день',
2 => 'вечер',
3 => 'ночь'
);
а в
PHP
1
$time_of_night = array(3 => 'ночью'))
но почему то не отображается время суток?

Добавлено через 4 минуты
вот это оригинал
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
 <?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 ;
 
}?>
а это наше творенье
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
 <?php
 
 function get_weather_night ($city, $col = 1, $day_of_the_week_array = array(1 => 'пн', 2 => 'вт', 3 => 'ср', 4 => 'чт', 5 => 'пт', 6 => 'сб', 7 => 'вс'), $time_of_night = array(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;}
 
 
   for ($i=3;$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_night'] = $time_of_night[$i] ;
 
 
} $counter++ ;
}
 
 
return $out ;
 
}?>
может быть что лишнее убрано?

Добавлено через 34 минуты
мои кони вообще на месте походу стоят, разобрался надо было в вывод то добавить
PHP
1
<?php echo $value1['time_of_night']; ?>
, ещё раз огромное спасибо alexsamos33 тему можно закрыть, хотя остался ещё один не решённый вопрос, как в зависимости от времени суток, меня местами день и ночь в выводе, но это я думаю на js реализуется проще, поэтому как сформулирую вопрос, задам в соответствующем разделе.
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 15:36
Ну так не обязательно на js, на php тоже можно.
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 15:51  [ТС]
ну вот вы сами провоцируете , подскажите как?
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 16:16
Цитата Сообщение от SVgroup Посмотреть сообщение
ну вот вы сами провоцируете , подскажите как?
PHP
1
2
3
4
5
6
7
8
9
10
$hour = date("H")*1;
if ($hour >= 11 && $hour <= 16) {
    echo "Добрый день";
} else if ($hour >= 16 && $hour <= 22) {
    echo "Добрый вечер";
} else if ($hour >= 22 || $hour <= 6) {
    echo "Доброй ночи";
} else if ($hour >= 6 && $hour <= 11) {
    echo "Доброе утро";
}
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 16:29  [ТС]
так, это я так понимаю в index.php реализовывается, в
PHP
1
echo
вывожу
PHP
1
2
3
4
5
6
7
8
9
10
<?php foreach ($out as $key => $value) { ?>
<br />
<?php foreach ($value['weather'] as $key1 => $value1) { ?>
<?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_to'] ; ?>°C
<br /><br />
<?php } ?>
<br /><br />
<?php } ?>
правильно понял?
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 16:30
Цитата Сообщение от SVgroup Посмотреть сообщение
правильно понял?
Ну да
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 16:40  [ТС]
вот тут ещё не совсем понятно
PHP
1
$hour = date("H")*1;
надо ли указывать
PHP
1
$hour
в
PHP
1
function get_weather_night/day
или ещё где-нибудь в weather-day/night.php и что положить в
PHP
1
("H")
?
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 16:44
Цитата Сообщение от SVgroup Посмотреть сообщение
вот тут ещё не совсем понятно
PHP
1
$hour = date("H")*1;
надо ли указывать
PHP
1
$hour
в
PHP
1
function get_weather_night/day
или ещё где-нибудь в weather-day/night.php и что положить в
PHP
1
("H")
?
Ничего никуда класть ненадо, не изменяйте эту строку вообще. Как было так пусть и будет
PHP
1
$hour = date("H")*1;
Это надо вставлять перед условием, а потом проверять в зависимости от часа что сейчас день или ночь и выводить...
0
1 / 1 / 0
Регистрация: 25.03.2014
Сообщений: 32
07.06.2015, 16:53  [ТС]
вас не затруднит показать реализацию в моём index.php
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
<div class="meteo">
         
         <?php require_once 'weather/weather-day.php' ;
$w_city_id = 29634;
// Идентификатор города, адрес http://weather.yandex.ru/static/cities.xml
$col = 1 ;
// количество дней, на сколько нужен прогноз
$out = get_weather_day($w_city_id, $col, $time_of_day)  ;
/*
первый параметр обязательный - индентификатор города
другие параметры необязательны
*/
$hour = date("H")*1;
if ($hour >= 11 && $hour <= 16) {
    echo "Добрый день";
} else if ($hour >= 16 && $hour <= 22) {
    echo "Добрый вечер";
} else if ($hour >= 22 || $hour <= 6) {
    echo "Доброй ночи";
} else if ($hour >= 6 && $hour <= 11) {
    echo "Доброе утро";
}
 
?>
<?php foreach ($out as $key => $value) { ?>
<?php foreach ($value['weather'] as $key1 => $value1) { ?>
<img class="img-meteo" src="http://yandex.st/weather/1.1.78/i/icons/48x48/<?php echo $value1['image']; ?>.png" width="48" height="48" />
<p class="temperature-days"><?php echo $value1['temp_to'] ; ?>°C</p>
<?php } ?>
<?php } ?>
 
 
 
<?php require_once 'weather/weather-night.php' ;
$w_city_id = 29634;
// Идентификатор города, адрес http://weather.yandex.ru/static/cities.xml
$col = 1 ;
// количество дней, на сколько нужен прогноз
$time_of_night = array(
0 => 'утро',
1 => 'день',
2 => 'вечер',
3 => 'ночь'
); // Массив времени суток
$out = get_weather_night($w_city_id, $col, $time_of_night)  ;
/*
первый параметр обязательный - индентификатор города
другие параметры необязательны
*/
?>
<?php foreach ($out as $key => $value) { ?>
<?php foreach ($value['weather'] as $key1 => $value1) { ?>
<div class="night"><?php echo $value1['time_of_night']; ?>
<p class="temperature"><?php echo $value1['temp_to'] ; ?>°C</p></div>
<?php } ?>
<?php } ?>
       
 
         </div>
и ещё получается т.к. я не разделил
PHP
1
$time_of_day
, а пошёл другим путём и с вашей помощью сделал два weather.php, то получается с вашим кодом, у меня будет выводится либо два дня либо две ночи на сайте, а мне бы желательно что бы меняли друг друга в зависимости от времени.
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
07.06.2015, 17:03
Так, значит нужно чтобы иконка вечером не выводилась, так?
Значит просто пишем условие:
PHP
1
2
3
4
5
6
7
8
9
<?php foreach ($out as $key => $value) { ?>
<?php foreach ($value['weather'] as $key1 => $value1) { ?>
<?php if ($hour >= 16 && $hour <= 22) { // вечер ?>
<?php } else { ?>
<img class="img-meteo" src="http://yandex.st/weather/1.1.78/i/icons/48x48/<?php echo $value1['image']; ?>.png" width="48" height="48" />
<?php } ?>
<p class="temperature-days"><?php echo $value1['temp_to'] ; ?>°C</p>
<?php } ?>
<?php } ?>
А то, что выводятся два сразу - тоже условие сделайте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.06.2015, 17:03
Помогаю со студенческими работами здесь

Создание гайда/информера
Здравствуйте уважаемые программисты у меня к вам есть небольшая просьба! Я хочу сделать гайд по игре Minecraft. но чтобы это...

Вывод информера в без iframe
Здравствуйте! Вопрос - как вывести блок информеров в &lt;div&gt; &lt;/div&gt; ? У меня есть блок, он лежит в папке /men/pr.html , хочу вывести...

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

Задать свой стиль оформления информера Яндекс Новости
Имеется информер Яндекс Новости ...

Создание информера для трансляции собственных новостей на чужие сайты.
Есть проблема. Хочу сделать информер для трансляции собственных новостей на чужие сайты. попробовал так: &lt;script...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru