$objects=getObjectsByClass("Погода с Yandex"); //имя класса
foreach($objects as $obj) {
$city_id=gg($obj['TITLE'].".city_id"); //ID города узнаем тут: https://pogoda.yandex.ru/static/cities.xml
$data_file="https://export.yandex.ru/bar/reginfo.xml?region=$city_id.xml?"; // адрес xml файла
$xml = simplexml_load_file($data_file); // раскладываем xml на массив
echo "<pre>"; print_r($xml); echo "</pre>";
/* $temp_yesterday=$xml->yesterday->temperature; //узнаем вчерашнюю температуру в это же время
if ($temp_yesterday>0) {$temp_yesterday='+'.$temp_yesterday;} // Если значение температуры положительно, для наглядности добавляем "+"
sg($obj['TITLE'].".TempYesterday",$temp_yesterday); */
$temp0=$xml->weather->day->day_part[0]->temperature;
if (date('G')==13) {sg($obj['TITLE'].".Temp13h",$temp0);}
if (date('G')==21) {sg($obj['TITLE'].".Temp21h",$temp0);}
if ($temp0>0) {$temp0=$temp0;} // Если значение температуры положительно, для наглядности добавляем "+"
sg($obj['TITLE'].".Temp",$temp0);
$tempFrom1=$xml->weather->day->day_part[1]->temperature_from;
$tempTo1=$xml->weather->day->day_part[1]->temperature_to;
sg($obj['TITLE'].".Temp1",$tempFrom1."...".$tempTo1);
$tempFrom2=$xml->weather->day->day_part[2]->temperature_from;
$tempTo2=$xml->weather->day->day_part[2]->temperature_to;
sg($obj['TITLE'].".Temp2",$tempFrom2."...".$tempTo2);
$tempFrom3=$xml->weather->day->day_part[3]->temperature_from;
$tempTo3=$xml->weather->day->day_part[3]->temperature_to;
sg($obj['TITLE'].".Temp3",$tempFrom3."...".$tempTo3);
$tempFrom4=$xml->weather->day->day_part[4]->temperature_from;
$tempTo4=$xml->weather->day->day_part[4]->temperature_to;
sg($obj['TITLE'].".Temp4",$tempFrom4."...".$tempTo4);
sg($obj['TITLE'].".Type",$xml->weather->day->day_part[0]->weather_type);
sg($obj['TITLE'].".Pressure",$xml->weather->day->day_part[0]->pressure." мм рт. ст.");
sg($obj['TITLE'].".Humidity",$xml->weather->day->day_part[0]->dampness."%");
sg($obj['TITLE'].".WindSpeed",$xml->weather->day->day_part[0]->wind_speed);
sg($obj['TITLE'].".Image",str_replace(array('https://yastatic.net/weather/i/icons/blueye/48/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[0]->{"image-v3"}));
sg($obj['TITLE'].".Image1",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[1]->{"image-v3"}));
sg($obj['TITLE'].".Image2",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[2]->{"image-v3"}));
sg($obj['TITLE'].".Image3",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[3]->{"image-v3"}));
sg($obj['TITLE'].".Image4",str_replace(array('https://yastatic.net/weather/i/icons/blueye/30/','png'), array('https://yastatic.net/weather/i/icons/blueye/color/svg/','svg'), $xml->weather->day->day_part[4]->{"image-v3"}));
function dPartDecl($n,$v)
{
if (strcasecmp($v, 'утро') == 0) {$day_part = "Утром";}
if (strcasecmp($v, 'день') == 0) {$day_part = "Днём";}
if (strcasecmp($v, 'вечер') == 0) {$day_part = "Вечером";}
if (strcasecmp($v, 'ночь')== 0) {$day_part = "Ночью";}
return $day_part;
}
echo $xml->weather->day->day_part[0][type];
sg($obj['TITLE'].".dayPart0",dPartDecl(0,$xml->weather->day->day_part[0][type]));
sg($obj['TITLE'].".dayPart1",dPartDecl(1,$xml->weather->day->day_part[1][type]));
sg($obj['TITLE'].".dayPart2",dPartDecl(2,$xml->weather->day->day_part[2][type]));
sg($obj['TITLE'].".dayPart3",dPartDecl(3,$xml->weather->day->day_part[3][type]));
sg($obj['TITLE'].".dayPart4",dPartDecl(4,$xml->weather->day->day_part[4][type]));
/* $rain1=gg($obj['TITLE'].".Type");
$rain2=$xml->day[0]->day_part[0]->weather_type;
$rain3=$xml->day[0]->day_part[1]->weather_type;
$rain4=$xml->day[0]->day_part[2]->weather_type;
$rain5=$xml->weather->day->day_part[4]->weather_type;
$rain=($rain1. $rain2. $rain3. $rain4. $rain5);
$pos = strpos($rain, "дождь");
if ($pos === false) {
sg($obj['TITLE'].".Rain",0);
} else {
sg($obj['TITLE'].".Rain",1);
// say("Возможен дождь",2);
}
*/
$dir = $xml->weather->day->day_part[0]->wind_direction;
switch ($dir){
case 's':
$dir="южный";
break;
case 'n':
$dir="северный";
break;
case 'w':
$dir="западный";
break;
case 'e':
$dir="восточный";
break;
case 'sw':
$dir="юго-западный";
break;
case 'nw':
$dir="северо-западный";
break;
case 'se':
$dir="юго-восточный";
break;
case 'ne':
$dir="северо-восточный";
break;
case 'calm':
$dir="штиль";
break;
}
sg($obj['TITLE'].".WindDir",$dir);
sg($obj['TITLE'].".SunRise",$xml->weather->day->sun_rise);
sg($obj['TITLE'].".SunSet",$xml->weather->day->sunset);
$metcast="На улице ".gg($obj['TITLE'].".Type").".";
// состояние ветра, согласно Шкалы Бофорта
$WindSpeed=(float)gg($obj['TITLE'].".WindSpeed");
if ($WindSpeed==0) { $windcast.=' Безветренно.';
} elseif ($WindSpeed<2) { $windcast=' Возможен тихий ветер.';
} elseif ($WindSpeed<3) { $windcast=' Возможен легкий ветер.';
} elseif ($WindSpeed<5) { $windcast=' Возможен слабый ветер.';
} elseif ($WindSpeed<8) { $windcast=' Умеренный ветер.';
} elseif ($WindSpeed<11) { $windcast=' Свежий ветер.';
} elseif ($WindSpeed<14) { $windcast=' Сильный ветер.';
} elseif ($WindSpeed<17) { $windcast=' Крепкий ветер.';
} elseif ($WindSpeed<20) { $windcast=' Очень крепкий ветер. Без нужды из дома лучше не выходить.';
} elseif ($WindSpeed<25) { $windcast=' На улице шторм. Выходить из дома не рекомендуется.';
} else { $windcast=' На улице ураган. Выходить из дома не рекомендуется.';
}
sg($obj['TITLE'].".windCast",$windcast);
$metcast.=$windcast;
$w=round(strip_tags(gg($obj['TITLE'].".Temp")));
$tempw=$w;
if($w < "0"){ $tempw=abs($w); }
if($w > "0"){ $templus=" +"; }
$tempcels="°";
$metcast.=' Температура '.gg($obj['TITLE'].".Temp").''.$tempcels.'.';
$tm=(float)gg($obj['TITLE'].".Temp");
if ($tm<-40) { $metcast.=' Мы морозов не боимся!';
} elseif ($tm<-30) { $metcast.=' Очень холодно, оденьтесь теплее.';
} elseif ($tm<-20) { $metcast.=' Самое время есть мороженое.';
} elseif ($tm<-10) { $metcast.=' Холодновато.';
} elseif ($tm<-3) { $metcast.=' Не особо холодно.';
} elseif ($tm<3) { $metcast.=' Значит, возможно, гололёд.';
} elseif ($tm<10) { $metcast.=' Тепловато.';
} elseif ($tm<25) { $metcast.=' Тепло.';
} elseif ($tm<30) { $metcast.=' Жарко.';
} elseif ($tm>30) { $metcast.=' Ташкент.';
}
// $metcast.=' Восход солнца сегодня в '.gg($obj['TITLE'].".SunRise").',';
// $metcast.=' закат в '.gg($obj['TITLE'].".SunSet").'.';
sg($obj['TITLE'].".metcast",$metcast);
//
$w3days= gg($obj['TITLE'].".dayPart1")." будет ";
$w3days.=gg($obj['TITLE'].".Temp1");
$w3days.="°.";
$w3days.=" \r\n".gg($obj['TITLE'].".dayPart2")." будет ";
$w3days.=gg($obj['TITLE'].".Temp2");
$w3days.="°.";
$w3days.=" \r\n".gg($obj['TITLE'].".dayPart3")." будет ";
$w3days.=gg($obj['TITLE'].".Temp3");
$w3days.="°.";
sg($obj['TITLE'].".season",$dir1); //время года */
sg($obj['TITLE'].".forecast",$w3days);
sg($obj['TITLE'].".updated" , date("H:i",time()));}
//say("Читаю прогноз погоды с Yandex", 0);