Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov
Пример запроса и отображения информации о погоде в любом городе
Информация о погоде берется с сервера 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=\"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 можно скачать здесь.