Усім доброго вечора! Нажаль, всі вище дані посилання на парсери, вони є не робочі (я гугнив, ті коди пробував), я гадав, у когось може є свій код, тільки – якщо і є, то напевно ділитись не хочуть…
Стосовно інформера на синоптик! :-) – розмішило, класний прикол…
Як вище вже і писали weather.ua має свій плугін парсера, і дуже хороший. У мене стояло питання, зробити саме одна іконка, і одна погода, як на скрині показував. Weather.ua за замовчуванням відає на 5 днів, в запиті можна змінити на 1 день, але знову ж таки, видавав погоду на 24 години, розбивши її на чотири, тобто: Ніч, Ранок, День, Вечір, і не важливо, вечір це чи ранок, завжди видає 4 штучки.
Я поступив таким чином:
Ніч = 3
Ранок = 9
День = 15
Вечір = 21
Так вираховує Weather.ua (частина коду інетовська).
Вираховую проміжок часу з 21 до 3 – виставляю ніч. З 3 до 9 – виставляю ранок і т.д.. Таким чином, у мене зявились цифри 3,9,15,21 – і за допомогою одної перемінної я забираю погоду відносно того, день тепер чи ніч.
Все!
<?php
$file_content = file_get_contents('http://xml.weather.co.ua/1.2/forecast/25?dayf=1');
$xml = simplexml_load_string($file_content);
$tim = date("G");
if ($tim >= 3 and $tim <=9 )
{
$tim_day ='3';
}
elseif ($tim >= 9 and $tim <=15 )
{
$tim_day ='9';
}
elseif ($tim >= 15 and $tim <=21 )
{
$tim_day ='15';
}
elseif ($tim >= 21 and $tim <=24 )
{
$ tim_day ='21';
}
elseif ($tim >= 0 and $tim <=3 )
{
$tim_day ='3';
}
if ($tim_day == 3)
{
$days ='Ніч';
}
elseif ($tim_day ==9)
{
$days ='Ранок';
}
elseif ($tim_day ==15)
{
$days ='День';
}
elseif ($tim_day ==21)
{
$days ='Вечір';
}
// Це провірка - видалити
echo $tim_day;
echo $days;
// <<<<<<<<<<<<<<<<<<
foreach ($xml -> forecast -> day as $day) {
if (strpos($day -> t -> min, '-') !== false) {
$sign_char_min = '';
}
else {$sign_char_min = '+';}
if (strpos($day -> t -> max, '-') !== false) {
$sign_char_max = '';
}
else {$sign_char_max = '+';}
switch ($day -> attributes() -> hour) {
case $tim_day:
$time_day = $days;
break;
default:
$time_day = 'none';
break;
}
?>
<?php if ($time_day != 'none') { ?>
<p style="float: left;"><?php echo $sign_char_max . $day -> t -> max ?></p>
<p style="float: left;"><img src="./clipart/<?php echo $day -> pict ?>" alt="<?php echo $day -> pict ?>" /></p>
<?php } ?>
<?php } ?>