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($url, 0, stream_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($wynik, 0, strpos($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/>
© by <a href="http://jacekk.info">Jacek Kowalski</a>
</body>
</html>';
?>
Browse Code © 2010 by Jacek Kowalski