Информация о погоде берется с сервера 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(0, 0, 0, date("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( $id, strlen( $id ) - 1, 1 ) == '"' )
{
$id = substr( $id, 0, strlen( $id ) - 1 );
}
$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