| |
|
|
| | подскажите пожалуйсто как сделать на сайте погоду, так что бы человек заходящий на сайт видел погоду именно в своём городе! Но при этом пользователи могут быть и из границы.
Тоесть кто то заходит с москвы и загружается погода в москве а если с парижа то погода в париже!?
Подскажите пожалуйсто реально ли это и как это осуществить??? | |
| |
|
|
| |
|
|
| |
для: m@rchello
(05.02.2007 в 11:52)
| | | для этого надо знать не только страну пользователя, но и его город, а за город вроде бы не отвечает ни одна из переменных окружения))
зацепка - время пользователя, но тут уже будут часовые пояса, а не города... | |
| |
|
|
| |
|
|
| |
для: retsoul
(05.02.2007 в 12:04)
| | | а если ориентироваться на IP адрес | |
| |
|
|
| |
|
|
| |
для: bronenos
(05.02.2007 в 12:05)
| | | можно,
тогда остаётся узнать откуда предоставлен доступ в интернет)) | |
| |
|
|
| |
|
|
| |
для: retsoul
(05.02.2007 в 12:04)
| | | Или javascript передать время, затем получить гринвич, сравнить, в зависимости от разницы подобрать ближайший город и вывести... | |
| |
|
|
| |
|
|
| |
для: retsoul
(05.02.2007 в 12:04)
| | | Или javascript передать время, затем получить гринвич, сравнить, в зависимости от разницы подобрать ближайший город и вывести... | |
| |
|
|
| |
|
|
| |
для: bronenos
(05.02.2007 в 12:08)
| | | разброс получится очень большой по меридиану, тогда ещё не плохо узнаваь язык пользователя, чтобы сократить исходные данные на поиск | |
| |
|
|
| |
|
|
| |
для: retsoul
(05.02.2007 в 12:12)
| | | впринципе город будет указываться при регистрации! и страна тоже! | |
| |
|
|
| |
|
|
| |
для: m@rchello
(05.02.2007 в 13:12)
| | | Ну тогда проблем нет - использовать регистрационную информацию | |
| |
|
|
| |
|
|
| |
для: bronenos
(05.02.2007 в 13:13)
| | | Сообственно в этом и проблема! Я не знаю как и откуда вытягивать погоду!!!:-( | |
| |
|
|
|
| |
|
|
| |
для: Loki
(05.02.2007 в 14:05)
| | | А как от туда со входными параметрами страны и города(на английском языке) погоду уже непосредственно на сайт??? | |
| |
|
|
| |
|
|
| |
для: m@rchello
(05.02.2007 в 14:41)
| | | через xml | |
| |
|
|
| |
|
|
| |
для: Loki
(05.02.2007 в 15:40)
| | | а примерчик не могли бы накинуть??? | |
| |
|
|
| |
|
|
| |
для: m@rchello
(05.02.2007 в 15:59)
| | | Мог бы, но он большой и малопонятный | |
| |
|
|
| |
|
|
| |
для: Loki
(05.02.2007 в 16:05)
| | | если можете то выложите пожалуйсто , я его поковыряю и разберусь! Очень нужно! | |
| |
|
|
| |
|
|
| |
для: m@rchello
(05.02.2007 в 16:23)
| | |
<?
$town_id=26063; //питер
$w_res=array();
$xml=file_get_contents("http://informer.gismeteo.ru/xml/{$town_id}_1.xml");
$dom = new DOMDocument();
$dom->loadXML($xml);
$dom->validateOnParse = true;
$town_name=$dom->getElementsByTagName('TOWN');
$town_name=urldecode($town_name->item(0)->getAttribute('sname'));
$weater_tmp=$dom->getElementsByTagName('FORECAST');
$i=0;
foreach ($weater_tmp as $weather)
{
$phenomena=$weather->getElementsByTagName('PHENOMENA')->item(0);
$pressure=$weather->getElementsByTagName('PRESSURE')->item(0);
$temperature=$weather->getElementsByTagName('TEMPERATURE')->item(0);
$wind=$weather->getElementsByTagName('WIND')->item(0);
$relwet=$weather->getElementsByTagName('RELWET')->item(0);
$heat=$weather->getElementsByTagName('HEAT')->item(0);
$w_res[$i]['town']=$town_id;
$w_res[$i]['town_name']=$town_name;
$w_res[$i]['tod']=$weather->getAttribute('tod');
$w_res[$i]['w_time']=$weather->getAttribute('year')."-".$weather->getAttribute('month')."-".$weather->getAttribute('day')." ".$weather->getAttribute('hour').":00:00";
$w_res[$i]['cloudiness']=$phenomena->getAttribute('cloudiness');
$w_res[$i]['precipitation']=$phenomena->getAttribute('precipitation');
$w_res[$i]['rpower']=$phenomena->getAttribute('rpower');
$w_res[$i]['spower']=$phenomena->getAttribute('spower');
$w_res[$i]['pressure_max']=$pressure->getAttribute('max');
$w_res[$i]['pressure_min']=$pressure->getAttribute('min');
$w_res[$i]['temp_max']=$temperature->getAttribute('max');
$w_res[$i]['temp_min']=$temperature->getAttribute('min');
$w_res[$i]['wind_max']=$wind->getAttribute('max');
$w_res[$i]['wind_min']=$wind->getAttribute('min');
$w_res[$i]['wind_direction']=$wind->getAttribute('direction');
$w_res[$i]['wet_max']=$relwet->getAttribute('max');
$w_res[$i]['wet_min']=$relwet->getAttribute('min');
$w_res[$i]['heat_max']=$heat->getAttribute('max');
$w_res[$i]['heat_min']=$heat->getAttribute('min');
$i++;
}
}
$weather=array();
$weather['cloudiness']=array(0=>"ясно", 1=>"малооблачно", 2=>"облачно", 3=>"пасмурно");
$weather['precipitation']=array(4=>"дождь", 5=>"ливень", 6=>"снег", 7=>"снег", 8=>"гроза", 9=>"нет данных", 10=>"без осадков");
$weather['rpower']=array(0=>"возможен", 1=>""); //дождь/снег
$weather['spower']=array(0=>"возможна", 1=>""); //гроза
$weather['tod']=array(0=>"ночь", 1=>"утро", 2=>"день", 3=>"вечер");
$weather['wind']=array(0=>"северный", 1=>"северо-восточный", 2=>"восточный", 3=>"юго-восточный", 4=>"южный", 5=>"юго-западный", 6=>"западный", 7=>"северо-западный");
echo $w_res[0]['town_name']."<br /><br />";
for ($i=0; $i<4; $i++)
{
echo "Дата: ".$w_res[$i]['w_time'].", ".$weather['tod'][$w_res[$i]['tod']]."<br />";
echo "Температура: ".(($w_res[$i]['temp_max']<0) ? ($w_res[$i]['temp_max']." ".$w_res[$i]['temp_min']) : ($w_res[$i]['temp_min']." ".$w_res[$i]['temp_max']))."<br />";
echo "Давление: ".$w_res[$i]['pressure_min']."-".$w_res[$i]['pressure_max']."мм р.ст.<br />";
echo "Влажность: ".$w_res[$i]['wet_min']."%-".$w_res[$i]['wet_max']."%<br />";
echo "Ветер ".$weather['wind'][$w_res[$i]['wind_direction']]." ".$w_res[$i]['wind_min']."-".$w_res[$i]['wind_max']."м/с<br />";
echo $weather['cloudiness'][$w_res[$i]['cloudiness']].", ";
if($w_res[$i]['precipitation']<=7)
{
echo $weather['rpower'][$w_res[$i]['rpower']]." ".$weather['precipitation'][$w_res[$i]['precipitation']]."<br />";
}
elseif($w_res[$i]['precipitation']==8)
{
echo $weather['spower'][$w_res[$i]['rpower']]." ".$weather['precipitation'][$w_res[$i]['precipitation']]."<br />";
}
elseif($w_res[$i]['precipitation']==10)
{
echo $weather['precipitation'][$w_res[$i]['precipitation']]."<br />";
}
echo "Комфорт ".(($w_res[$i]['heat_max']<0) ? ($w_res[$i]['heat_max']." ".$w_res[$i]['heat_min']) : ($w_res[$i]['heat_min']." ".$w_res[$i]['heat_max']))." градусов<br /><br /><br />";
|
| |
| |
|
|