Re: Как погоду настроить
Добавлено: Ср дек 11, 2013 12:26 pm
http://smartliving.ru/Main/ProgrammingFunctionsPAV писал(а):... по Мажордому списка команд найти не могу...
Код: Выделить всё
<!--
str1="<p>%ThisComputer.windDirection%</p>";
document.write(str1);
//-->
Код: Выделить всё
$status="";
$status.="Сегодня ".gg("Moscow.Type").".";
say($status,1);
$status="";
$w=round(gg("Moscow.Temp"));
$tempw=$w;
if($tempw >= 11 and $tempw <= 14){
$tempcels=" градусов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$tempcels= градусов ; }
if($tempw == 1){
$tempcels= градус ; }
if($tempw >= 2 and $tempw <= 4){
$tempcels= градуса ; }
}
//$tNew = abs((float)getGlobal('Moscow.Temp'));
$status.=' Температура '.getGlobal('Moscow.Temp')." ".$tempcels." цельсия";
say($status,1);
$tempw="";
$tempcels="";
$status="";
$h=round(gg("Moscow.Humidity"));
$tempw=$h;
if($tempw >= 11 and $tempw <= 14){
$tempcels=" процентов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$tempcels= процентов ; }
if($tempw == 1){
$tempcels= процент ; }
if($tempw >= 2 and $tempw <= 4){
$tempcels= процента ; }
}
$status.="Относительная влажность ".gg("Moscow.Humidity")." ".$tempcels. ".";
say($status,1);
$tempw="";
$tempcels="";
$status="";
$pressure=(float)gg("Moscow.Pressure");
if ($pressure<728) {
$status.=' Атмосферное давление пониженное';
} elseif ($pressure>768) {
$status.=' Атмосферное давление повышенное.';
} else {
$status.=' Атмосферное давление нормальное.';
}
say($status,1);
$status="";
// ветер
$WindSpeed=(float)gg("Moscow.WindSpeed");
if ($WindSpeed<1) {
$status.=' Ветра нет.';
} elseif ($WindSpeed<3) {
$status.=' Ветер слабый.';
} elseif ($WindSpeed<6) {
$status.=' Ветер сильный.';
} elseif ($WindSpeed<9) {
$status.=' Ветер очень сильный.';
} else {
$status.=' Ветер очень! Очень сильный.';
}
$status.=' Направление '.getGlobal('Moscow.WindDir').'.';
say($status,1);
например у меня сделано так:Palko писал(а):А есть ли возможность самостоятельного разбора веб страницы например в теле сценария с помощью preg_match?
Чтобы вытащить с gismeteo полный прогноз на три дня по параметрам
Код: Выделить всё
//$city_id=28807;
$data_file="http://export.yandex.ru/weather-ng/forecasts/28807.xml";//$city_id.xml?".rand(); // адрес xml файла
$xml = simplexml_load_file($data_file); // раскладываем xml на массив
$temp=$xml->fact->temperature;
// Если значение температуры положительно, для наглядности добавляем "+"
if ($temp>0) {$temp='+'.$temp;}
sg("YandexSamara.Temp",$temp);
sg("YandexSamara.City",$xml->city);
sg("YandexSamara.Type",$xml->fact->weather_type);
sg("YandexSamara.Pressure",$xml->fact->pressure);
sg("YandexSamara.Humidity",$xml->fact->humidity);
sg("YandexSamara.WindSpeed",$xml->fact->wind_speed);
sg("YandexSamara.Image",$xml->fact->image);
sg("YandexSamara.MorningTemp",$xml->{'day'}->{'day_part'}[0]->{'temperature-data'}->{'avg'});
sg("YandexSamara.MorningWeatherType",$xml->{'day'}->{'day_part'}[0]->{'weather_type'});
sg("YandexSamara.DayTemp",$xml->{'day'}->{'day_part'}[1]->{'temperature-data'}->{'avg'});
sg("YandexSamara.DayWeatherType",$xml->{'day'}->{'day_part'}[1]->{'weather_type'});
sg("YandexSamara.EveningTemp",$xml->{'day'}->{'day_part'}[2]->{'temperature-data'}->{'avg'});
sg("YandexSamara.EveningWeatherType",$xml->{'day'}->{'day_part'}[2]->{'weather_type'});
sg("YandexSamara.NightTemp",$xml->{'day'}->{'day_part'}[3]->{'temperature-data'}->{'avg'});
sg("YandexSamara.NightWeatherType",$xml->{'day'}->{'day_part'}[3]->{'weather_type'});
sg("YandexSamara.TomorrowDayTemp",$xml->{'day'}[1]->{'day_part'}[1]->{'temperature_to'});
sg("YandexSamara.TomorrowDayWeatherType",$xml->{'day'}[1]->{'day_part'}[1]->{'weather_type'});
$dir = $xml->fact->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 'calm':
$dir="штиль";
break;
}
sg("YandexSamara.WindDir",$dir);
sg("YandexSamara.SunRise",$xml->day[0]->sunrise);
sg("YandexSamara.SunSet",$xml->day[0]->sunset);
// Запишем температуру вчерашнего дня для этого часа
$SQLText = " SELECT ph.value as val";
$SQLText.= " FROM pvalues pv, objects o, properties p, phistory ph ";
$SQLText.= " WHERE pv.object_id = o.id ";
$SQLText.= " AND p.id = pv.property_id ";
$SQLText.= " AND o.title = 'YandexSamara' ";
$SQLText.= " AND p.title = 'Temp' ";
$SQLText.= " AND ph.value_id = pv.id ";
$SQLText.= " AND UNIX_TIMESTAMP( pv.updated ) - UNIX_TIMESTAMP( ph.added ) <24 *60 *60 +30 *60 ";
$SQLText.= " ORDER BY ph.added ";
$SQLText.= " LIMIT 1 ";
$tempYesterday = SQLSelectOne($SQLText);
sg("YandexSamara.tempYesterday",$tempYesterday['val'] );