Podgląd pliku: / jacekk.info / weather.phps


<?php
/**************************************************
 *                 Pogoda z WP.pl                 *
 **************************************************
 * Wersja: 4.0                                    *
 * Autor: Jacek Kowalski (http://jacekk.info)     *
 *                                                *
 * Strona WWW: http://jacekk.info/scripts/weather *
 *                                                *
 * Utwór rozprowadzany na licencji                *
 * http://creativecommons.org/licenses/by-nc/2.5/ *
 **************************************************/

/* Kodowanie znaków UTF-8 */

// Zmień 1201286 na kod swojego miasta
$url 'http://pogoda.wp.pl/miasto,,mid,1201286,mi.html';

// Ścieżka do cache'a
$cache dirname(__FILE__).'/pogoda_cache.txt';
// Dane aktualne?
$recent TRUE;

// Sprawdzenie możliwości zapisania pogody
if( ( !file_exists($cache) AND !is_writable(dirname($cache)) )
    OR ( 
file_exists($cache) AND !(is_writable($cache)) ) ) {
    
$cache '';
}
// Dane są aktualne?
elseif( @filemtime($cache) < strtotime('-3 hours') ) {
    
$recent FALSE;
}

// Nie istnieje możliwość zapisania informacji lub dane są nieaktualne
if($cache == '' OR !$recent) {
    
// Pobieramy pogodę
    
$wynik file_get_contents($url0stream_context_create(array(
        
'http' => array(
            
'header' => 'Referrer: http://pogoda.wp.pl',
            
'user_agent' => 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)',
        )
    )));
    
    
// Można zapisać do cache'a
    
if($cache != '') {
        
// Zapamiętujemy dane
        
file_put_contents($cache$wynik);
    }
}
else
{
    
// Ładujemy zapisane dane
    
$wynik file_get_contents($cache);
}

// Wycięcie kawałka, potrzebne zamiany
$start strpos($wynik'<div class="hdMain"');
$stop strpos($wynik'<br class="b5"/>'$start);
$wynik substr($wynik$start$stop-$start);
$wynik str_replace('<strong style="padding-left: 2px;">''<strong>'$wynik);

// Wyciąganie danych
$dzien trim(strip_tags(substr($wynik0strpos($wynik'</div>'))));
$szukaj = array(
    
'<strong>' => array(
        
'</strong>',
        
'miasto',
        
'temp_max',
        
'temp_min',
        
'wiatr_szybkosc',
        
'wiatr_chlodzenie',
        
'wschod',
        
'zachod',
    ),
    
'<div class="chmurka">' => array(
        
'</div>',
        
'obrazek',
    ),
    
'<div class="opis">' => array(
        
'</div>',
        
'opis',
    ),
    
'.gif" alt="' => array(
        
'"',
        
'spacja',
        
'wiatr_kierunek',
    ),
);

$dane = array();

foreach(
$szukaj as $patt => $info) {
    
$stop 0;
    
$len strlen($patt);
    for(
$i=0$i count($info)-1$i++) {
        
$start strpos($wynik$patt$stop)+$len;
        
$stop strpos($wynik$info[0], $start);
        
$dane$info[$i+1] ] = trim(substr($wynik$start$stop-$start));
    }
}

if(
$dane['temp_min'] == $dane['temp_max']) {
    
$dane['temp'] = $dane['temp_min'];
}
else
{
    
$dane['temp'] = 'od '.$dane['temp_min'].' do '.$dane['temp_max'];
}

// Pokazanie w nowej formie
echo '<html>
<head>
<base href="http://pogoda.wp.pl">
<style type="text/css">
body {
    font-family: Verdana, sans-serif;
    font-size: 10px;
}
h1 {
    font-size: 14px;
    font-weight: bold;
}
.sub {
    font-size: 13px;
}
</style>
</head>
<body>
<h1>'
.$dzien.'. Pogoda dla miejscowości '.strip_tags($dane['miasto']).'</h1>
<p>'
.$dane['obrazek'].'</p>

<p><b>Temperatura:</b> '
.$dane['temp'].'</p>

<p><b>Kierunek wiatru:</b> '
.$dane['wiatr_kierunek'].'<br/>
<b>Szybkość wiatru:</b> '
.$dane['wiatr_szybkosc'].'<br/>
<b>Czynnik chłodzący:</b> '
.$dane['wiatr_chlodzenie'].'</p>

<p><b>Wschód słońca:</b> '
.$dane['wschod'].'<br/>
<b>Zachód słońca:</b> '
.$dane['zachod'].'</p>
<hr/>
&copy; by <a href="http://jacekk.info">Jacek Kowalski</a>
</body>
</html>'
;
?>

Browse Code © 2010 by Jacek Kowalski