Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Пример запроса и отображения информации о погоде в любом городе

Информация о погоде берется с сервера http://meteo.infospace.ru.

Выберите город:

Погода в г.Москва

Прогноз составлен:
20.05.2012 - 19:00 MSK
Вс, 20.05 Пн, 21.05 Вт, 22.05 Ср, 23.05 Чт, 24.05 Пт, 25.05 Сб, 26.05
 Днем    ... °C     +26 °C     +26 °C     +22 °C     +15 °C     +17 °C     +20 °C  
 Ночью    ... °C     +13 °C     +13 °C     +6 °C     +5 °C     +5 °C     +6 °C  
 Давление (при H = 150 м)    ... мм     752 мм     749 мм     749 мм     754 мм     757 мм     755 мм  
 Ветер    ... м/с  (CB)     3 м/с  (З)     2 м/с  (З)     7 м/с  (CB)     7 м/с  (B)     5 м/с  (CB)     3 м/с  (З)  
 Облачность    ...     Малооблачно     Малооблачно     Переменная  облачность     Ясно     Ясно     Ясно  
 Осадки    ...     Без осадков     Возможен  небольшой дождь     Небольшой дождь     Без осадков     Без осадков     Без осадков  

Исходный код примера:


<?php
$city
=1264// Москва
// Если существует сегодняшняя кэшированная версия, отдаю её:
$cache_file=$_SERVER['DOCUMENT_ROOT']."/tmp/pogoda".$city.".cch";
if (
file_exists$cache_file ) && 
    
date('Y-m-d',filemtime($cache_file))==
    
date("Y-m-d"mktime(000date("m") , date("d"), date("Y")))){
   
readfile($cache_file);
}else{

$content=file_get_contents("http://meteo.infospace.ru/win/wcond/html/");
$start strpos$content"r_form.ssi?id=" ) + 11;
$end   strpos$content'"'$start );

$id substr$content$start$end $start );
if ( 
substr$idstrlen$id ) - 1) == '"' )
{
    
$id substr$id0strlen$id ) - );
}

$content=file_get_contents("http://meteo.infospace.ru/win/cities/html/city_r.sht?num=$city&$id");

// название населенного пункта
if (preg_match('|<font color=#800000>(.*?)</font>|sei'$content$arr)) $title trim($arr[1]);
   else 
$title='';

$tstart strpos$content"<table BORDER=0 CELLPADDING=0 CELLSPACING=0 width=100%>" ) + 55;
$tend   strpos$content"</TABLE>"$tstart ) + 8;
$tbl    substr$content$tstart$tend $tstart );

$search_patterns  = array(
    
"../../images/",
    
"<font size=-1",
    
"Дневная температура",
    
"Ночная температура",
    
"(при H =\x0a   \t\t\t\t90\x0a   \t\t\t\tм)",
    
"BGCOLOR=#B4DCFF",
    
"BGCOLOR=#A0C8FF",
    
"BGCOLOR=#8CB4FA",
    
"BGCOLOR=#78A0F0",
    
"BGCOLOR=#648CE6",
    
"BGCOLOR=5078DC",
    
"BGCOLOR=#5078DC",
    
"BGCOLOR=#3C64D2",
    
"BGCOLOR=#3C64D2",
    
"<font size=-2",
    
"<FONT SIZE=-1",
    
"<B>""</B>""<I>""</I>"
);

$replace_patterns = array(
    
"pogoda/",
    
"<font size=1 face=\"Areal\"",
    
"Днем",
    
"Ночью",
    
"",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"bgcolor=#ffffff",
    
"<font size=-2 face=\"Areal\"",
    
"<font size=-2 face=\"Areal\""
);

$tbl =  "<h2>Погода в г.".$title."</h2>\n".
    
"<table border=0 cellpadding=0 cellspacing=0 width=500 height=190>\n".
    
str_replace$search_patterns$replace_patterns$tbl );
@
file_put_contents($cache_file,$tbl);
echo 
$tbl;
}
?>
Скопировать в буфер

Чтобы узнать код вашего города($city), найдите погоду в вашем городе на сервере и посмотрите параметр num в адресной строке браузера.

Картинки из папки pogoda можно скачать здесь.

© Copyright 2008-2012 by KDG