Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Пример запроса и отображения информации о погоде в любом городе
Информация о погоде берется с сервера http://meteo.infospace.ru.
Погода в г.
Прогноз составлен: 23.11.2020 - 12:00 MSK |
Пн, 23.11 | Вт, 24.11 | Ср, 25.11 | Чт, 26.11 | Пт, 27.11 | Сб, 28.11 | Вс, 29.11 |
Днем | +2 °C | +2 °C | +1 °C | +2 °C | +2 °C | +0 °C | -3 °C |
Ночью | -3 °C | -2 °C | -4 °C | -3 °C | -1 °C | -4 °C | -7 °C |
Давление (при H = 150 м) | 742 мм | 742 мм | 748 мм | 747 мм | 742 мм | 748 мм | 754 мм |
Ветер | 4 м/с (ЮЗ) | 3 м/с (Ю) | 3 м/с (СЗ) | 4 м/с (Ю) | 4 м/с (Ю) | 3 м/с (B) | 4 м/с (B) |
Облачность | |||||||
Осадки |
Исходный код примера:
$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>|si', $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=\"Arial\"",
"Днем",
"Ночью",
"",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"bgcolor=#ffffff",
"<font size=-2 face=\"Arial\"",
"<font size=-2 face=\"Arial\""
);
$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 можно скачать здесь.
.
Прокомментировать/Отблагодарить