Pocasie na web
Moderátor: Moderators
- Marek Adamec
- Medium Star
- Príspevky: 246
- Dátum registrácie: Pi Dec 28, 2007 7:58 pm
- Bydlisko: Dubnica nad Váhom
- Kontaktovať používateľa:
Pocasie na web
chcel by som spravit skript na predpoved pocasia, zatial som nasiel nejake weby ktore poskytuju odber...:
http://weather.msn.com/localmaps.aspx?w ... VK&src=rss
http://www.google.co.uk/ig/api?weather=trencin
http://www.k-service.sk/Pocko/index.php ... anguage=sk
Mesta ktore by som chcel mat:
Blatislava
Nitra
Trencin
Dubnica nad Vahom
Zilina
Matrin
Poprad
Kosice
len neviem co dalej stym.
http://weather.msn.com/localmaps.aspx?w ... VK&src=rss
http://www.google.co.uk/ig/api?weather=trencin
http://www.k-service.sk/Pocko/index.php ... anguage=sk
Mesta ktore by som chcel mat:
Blatislava
Nitra
Trencin
Dubnica nad Vahom
Zilina
Matrin
Poprad
Kosice
len neviem co dalej stym.
- _rasel^
- ETOMITE Admin
- Príspevky: 1122
- Dátum registrácie: Ut Sep 20, 2005 1:03 am
- Bydlisko: Košice (SR)
- Kontaktovať používateľa:
Re: Pocasie na web
Na stránke http://www.pmasarik.info/index.php?docs ... iny+do+RS2 si stiahni Obrázky k počasiu. Dole je snippet pre Etomite [!Pocasie!] (takto ho používaj na webe, tzn. že sa nebude cachovať). Postupuj podľa popisu v súbore, ak ho chceš upraviť na iné mesto.
Kód: Vybrať všetko
/*
/-----------------------------------------\
| |
-----| Počasie na stránke pomocou PHP |-----
| -------------------------------- |
| |
| Version: 1.4 beta pre RS2 SK |
| Website: www.pmasarik.info/blog/ |
| Author: Peter Masarik |
E-mail: pmasarik@pobox.sk |
| Copyright: (c) Peter Masarik, 2005 |
\-----------------------------------------/
Tento script je moje dielo na ktorom som sa začal učiť PHP, preto
možno nie sú použité tie správne programátorské postupy, ale každý
nejako začínal. Script testujem sám a preto sa môžu stále vyskytnúť
nejaké problémy. Odladený je pre METAR správy z Piešťanského letiska,
takže na inom letisku môžu kludne nastať nejaké problémy.
Script som upravil na plugin, ktorý sa dá použiť do Redakčného systému pre blog RS2.
Script je voľne šíriteľný, stále na ňom pracujem a dolaďujem.
Preto sa vám oplatí sem-tam pozrieť na stránku http://www.pmasarik.info/blog/
či nie je niečo nové. Okomentovaný je dostatočne, na to aby to pochopil
aj menej skúsený užívateľ a ak treba rád pomôžem z akýmkoľvek problémom.
Stačí napísať... :-)
Do počasia a dúfam, že dáte vedieť na akej stránke ste použili môj script.
#######################
# Skratky miest v SR: #
#######################
LZPP -- PIEŠŤANY
LZTT -- POPRAD
LZKZ -- KOŠICE
LZIB -- BRATISLAVA
#######################
# Skratky miest v ČR: #
#######################
LKPR -- Praha/Ruzyně
LKMT -- Ostrava/Mošnov
LKTB -- Brno/Tuřany
LKHO -- Holešov
LKKV -- Karlovy Vary
LKLB -- Liberec
LKKU -- Kunovice
LKKB -- Kbely
LKVO -- Vodochody ** POZOR NEFUNGUJE!!!
LKOT -- Otrokovice ** POZOR NEFUNGUJE!!!
LKPD -- Pardubice
LKCV -- Čáslav
LKNA -- Náměšť nad Oslavou
LKPO -- Přerov
Adresa s mapov ČR -- http://meteo.rlp.cz/mapa_int.htm
*/
####################################
# Tieto údaje uprav podľa nápovedy #
####################################
$skratka = "LZKZ"; // namiesto LZPP zadaj kód tvojho mesta, napríklad LKKU pre Kunovice.
$icons_folder = "icons/"; // Sem zadaj cestu k obrázkom na identifikáciu počasia
$mesto = "Kosice"; // sem napíš názov mesta kde žiješ
$nadpis = "Pocasie"; // sem napíš nadpis, ktorý sa bude zobrazovať
## svoje súradnice zistíte na adrese http://www.heavens-above.com/ ##
$latitude = "48.750"; # zemepisná dĺžka
$longitude = "17.833"; # zemepisná širka
$timezone = "+1"; # časové pásmo
## Ak chces tento script pouzivat aj inde nez v RS2 chod na samy konec a
## odstran dve lomitka pred echo ---> //echo "$sablonaNahrazeni"; uz upravene pre Etomite!
## Ak si chces zmenit vysledne HTML, chod na riadok 440 az 449 a uprav si to ako len chces
###################################################################################################
############## Ak sa nerozumieš PHP tak ďalej už sa ani nepozeraj !!! ###################
###################################################################################################
## Cookies
## Nacitanie suboru trva niekedy 1 az 5 sekund a zdrzuje to nacitanie stranky, preto ulozim na 30minut
## hodnotu do cookies aby sa stale nemusela nacitat. Takze pri bruzdani po stranke zostane 30 minut
## ta ista hodnota.
## Co ak niekto pride na stranku 5 minut pred zmenou udaju? Ma smolu 30 minut sa mu bude ukazovat
## stara hodnota. Nevidim v tom problem kedze aktualizacia je cca kazdu 1 hodinu a nejde o nic vazne.
if (!isset($_COOKIE['data_pocasie'])) {
$cesta_zdroja1 = "http://weather.noaa.gov/pub/data/observations/metar/stations/" .$skratka. ".TXT";
$fp = @fopen($cesta_zdroja1, "r");
$data = @file($cesta_zdroja1);
for($i=0; $i<count($data); $i++)
$retazec = $data{1};
setcookie ('data_pocasie', $retazec, time()+1800, '/', '', 0);
@fclose($fp);
} else {
$retazec = $_COOKIE['data_pocasie'];
}
if (!ereg ('^[A-Z]{4}$', $skratka)) { //kontrola spravne zadanej skratky
$problem = TRUE;
}
if (!isset($retazec) OR @$problem == TRUE) { // ak je problem nespusti sa script, napise chybovu hlasku
$problem = TRUE;
} else { // ak je všetko OK prebehne script
#########################
# identifikacia teploty #
#########################
$pozicia_znaku = strrpos($retazec, "/");
$pozicia_teploty = $pozicia_znaku-3;
$teplota = substr($retazec, $pozicia_teploty, 3);
$o = array("M00", "M", "00");
$n = array("0", "-", "0");
$teplota = str_replace($o, $n, $teplota);
$teplota = (int)$teplota;
############################
# identifikacia oblačnosti #
############################
// ak je CAVOK
$pozicia_cavok = strpos($retazec, "CAVOK");
$cavok = substr($retazec, $pozicia_cavok, 5);
if ($cavok == "CAVOK") {
$oblaky = array("- jasno", "0cloud");
@$oblaky_1 = $oblaky[0];
@$oblacnost_icon = $oblaky[1];
} else { $pole_oblacnost = array("SKC", "NSC", "FEW", "SCT", "BKN", "OVC");
$tmp = array();
foreach ($pole_oblacnost as $hladaj_oblacnost) {
$pozicia_oblacnost = strpos($retazec, $hladaj_oblacnost);
$oblacnost = substr($retazec, $pozicia_oblacnost, 3); //OVC
$vyska_oblacnost = substr($retazec, $pozicia_oblacnost+3, 3); //050
if (strlen($pozicia_oblacnost) > 0) {
$tmp[$vyska_oblacnost] = $oblacnost; //("050" => "OVC"
}
} //foreach
krsort ($tmp);
$tmp = array_values($tmp);
@$oblacnost = $tmp[0];
if (isset($oblacnost)) {
switch($oblacnost) {
case "SKC": $oblaky = array("- jasno", "0cloud"); break;
case "NSC": $oblaky = array("- veľmi malá oblačnosť", "1cloud_"); break;
case "FEW": $oblaky = array("- malá oblačnosť", "1cloud_"); break;
case "SCT": $oblaky = array("- polooblačno", "2cloud_"); break;
case "BKN": $oblaky = array("- oblačno", "3cloud_"); break;
case "OVC": $oblaky = array("- zamračené", "4cloud_"); break;
}
}
@$oblaky_1 = $oblaky[0];
@$oblacnost_icon = $oblaky[1];
} //else CAVOK
###############################
# Búrky a prehánky spresnenie #
###############################
$pole_burky = array("TSRA", "TSSN", "TSPE", "TSGR", "TSGS", "SHRA", "SHSN", "SHPE", "SHGR", "FZFG", "FZDZ", "FZRA");
$tmp_1 = array();
foreach ($pole_burky as $hladaj_burky) {
$pozicia_burky = strpos($retazec, $hladaj_burky);
$b = substr($retazec, $pozicia_burky, 4);
$znamienko_b = substr($retazec, $pozicia_burky-1, 1);
if (strlen($pozicia_burky) > 0) {
$tmp_1[] = $b; //TSGR
$tmp_1[] = $znamienko_b; // "+" OR "-" OR " "
}
} //foreach
@$burky = $tmp_1[0]; //TSGR
@$znamienko_burky = $tmp_1[1]; // "+" OR "-" OR " "
if (isset($burky)) {
switch($znamienko_burky) {
case "-": $znamienko_burky = "- slabá "; $znamienko_zrazky_icon = "light"; break;
case "+": $znamienko_burky = "- silná "; $znamienko_zrazky_icon = "heavy"; break;
case " ": $znamienko_burky = "- "; $znamienko_zrazky_icon = NULL; break;
}
if ($burky == "SHRA" && $znamienko_burky == "- ") { //zopar problemovych podmienok + sklonovanie
$znamienko_zrazky_icon = "mod";
$burky = array("dažďová prehánka", "rain.png");
} elseif ($burky == "FZDZ" && $znamienko_burky == "- silná ") {
$znamienko_burky = "- silné ";
$burky = array("mrznúce mrholenie", "rain.png");
} elseif ($burky == "FZDZ" && $znamienko_burky == "- slabá ") {
$znamienko_burky = "- slabé ";
$burky = array("mrznúce mrholenie", "rain.png");
} elseif ($burky == "FZRA" && $znamienko_burky == "- silná ") {
$znamienko_burky = "- silný ";
$burky = array("mrznúci dážď", "rain.png");
} elseif ($burky == "FZRA" && $znamienko_burky == "- slabá ") {
$znamienko_burky = "- slabý ";
$burky = array("mrznúci dážď", "rain.png");
} else {
switch($burky) {
case "TSRA": $burky = array("búrka so zrážkami", "thunders.png"); break;
case "TSSN": $burky = array("búrka so snežením", "thunders.png"); break;
case "TSPE": $burky = array("búrka s ľadovými jadrami", "thunders.png"); break;
case "TSGR": $burky = array("búrka s krúpami", "thunders.png"); break;
case "TSGS": $burky = array("búrka so snehovými jadrami", "thunders.png"); break;
case "SHRA": $burky = array("dažďová prehánka", "rain.png"); break;
case "SHSN": $burky = array("snehová prehánka", "snow.png"); break;
case "SHPE": $burky = array("prehánka s ľadovými jadrami", "hail.png"); break;
case "SHGR": $burky = array("prehánka s krúpami", "hail.png"); break;
case "FZFG": $burky = array("mrznúca hmla", "fog.png"); break;
case "FZDZ": $burky = array("mrznúce mrholenie", "modrain.png"); break;
case "FZRA": $burky = array("mrznúci dážď", "modrain.png"); break;
}
}//else
@$burky_1 = $burky[0];
@$zrazky_icon = $burky[1];
} // if isset($burky)
######################################
# hydrometeory zmenšujúce dohľadnosť #
######################################
if (@$burky_1 != "mrznúca hmla") {
$pole_hmla = array("FG", "BR");
foreach ($pole_hmla as $key => $hladaj_hmlu) {
$pozicia_hmla = strpos($retazec, $hladaj_hmlu);
$h = substr($retazec, $pozicia_hmla, 2); //FG alebo BR
if (strlen($pozicia_hmla) > 0) {
if ($h == "FG") $hmla_1 = array("- hmla", "fog.png");
if ($h == "BR") $hmla_1 = array("- slabá hmla", "fog.png");
}
}//foreach
}//if
@$hmla_icon = $hmla_1[1];
@$hmla = $hmla_1[0];
########################
# identifikacia zrazky #
########################
if (!isset($burky_1)) {
$pole_zrazky = array("DZ", "RA", "SN", "SG", "PE", "IC", "GR", "GS", "TS");
$tmp_2 = array();
foreach ($pole_zrazky as $key => $hladaj_zrazky) {
$pozicia_zrazky = strpos($retazec, $hladaj_zrazky);
@$z = substr($retazec, $pozicia_zrazky, 2); //PE
@$znamienko_z = substr($retazec, $pozicia_zrazky-1, 1);
if (strlen($pozicia_zrazky) > 0) {
$tmp_2[] = $z; //PE
$tmp_2[] = $znamienko_z; // "+" OR "-" OR " "
}
} //foreach
@$zrazky = $tmp_2[0]; //PE
@$znamienko_zrazky = $tmp_2[1]; // "+" OR "-" OR " "
if (isset($zrazky)) {
switch($znamienko_zrazky) {
case "-": $znamienko_zrazky = "- slabé "; $znamienko_zrazky_icon = "light"; break;
case "+": $znamienko_zrazky = "- silné "; $znamienko_zrazky_icon = "heavy"; break;
case " ": $znamienko_zrazky = "- "; $znamienko_zrazky_icon = NULL; break;
}
if ($zrazky == "RA" && $znamienko_zrazky == "- silné ") { //zopar problemovych podmienok + sklonovanie
$znamienko_zrazky = "- silný ";
$zrazky = array("dážď", "rain.png");
} elseif ($zrazky == "RA" && $znamienko_zrazky == "- slabé ") {
$znamienko_zrazky = "- slabý ";
$zrazky = array("dážď", "rain.png");
} else {
switch($zrazky) {
case "DZ": $zrazky = array("mrholenie", "rain.png"); break;
case "RA": $zrazky = array("dážď", "modrain.png"); break;
case "SN": $zrazky = array("sneženie", "snow.png"); break;
case "TS": $zrazky = array("búrka", "thunders.png"); break;
case "SG": $zrazky = array("snehové krúpky", "hail.png"); break;
case "PE": $zrazky = array("ľadové jadrá", "hail.png"); break;
case "IC": $zrazky = array("ľadové kryštáliky", "hail.png"); break;
case "GR": $zrazky = array("krúpy", "hail.png"); break;
case "GS": $zrazky = array("malé krúpky", "hail.png"); break;
}
}//else
}// isset $zrazky
@$zrazky_1 = $zrazky[0];
@$zrazky_icon = $zrazky[1];
}// !isset $burky_1
##################################
# kedy vychádza a zachádza slnko #
##################################
$yday = date("z");
$mon = date("n");
$mday = date("j");
$year = date("Y");
function is_daylight_time($time)
{ list($dom, $dow, $month, $hour, $min)
= explode(":", date("d:w:m:H:i", $time));
if ($month > 4 && $month < 10) {
$retval = 1; # od mája do septembra
} elseif ($month == 4 && $dom > 7) {
$retval = 1; # po prvom aprílovom tyzdni
} elseif ($month == 4 && $dom <= 7 && $dow == 0 && $hour >= 2) {
$retval = 1; # po 2. hodine rannej v nedelu ($dow=0) v apríli
} elseif ($month == 4 && $dom <= 7 && $dow != 0 && ($dom-$dow > 0)) {
$retval = 1; # po prvej aprílovej nedeli
} elseif ($month == 10 && $dom < 25) {
$retval = 1; # pred posledným týždňom v októbri
} elseif ($month == 10 && $dom >= 25 && $dow == 0 && $hour < 2) {
$retval = 1; # pred 2. hodinou rannou poslednú októbrovú nedeľu
} elseif ($month == 10 && $dom >= 25 && $dow != 0
&& ($dom-24-$dow < 1) ) {
$retval = 1; # pred nedeľou posledného týždňa v októbri
} else { $retval = 0; }
return($retval);}
$DST=is_daylight_time(date("U"));
if ($DST) {$timezone = ($timezone + 1);}
if ($timezone == "13") {$timezone = "-11";}
$A = 1.5708;
$B = 3.14159;
$C = 4.71239;
$D = 6.28319;
$E = 0.0174533 * $latitude;
$F = 0.0174533 * $longitude;
$G = 0.261799 * $timezone;
$R = -.0145439;
for ($i = 0; $i < 2; $i++)
{if (!$i) {$J = $A; $type = "vychádza";}
# výpočet východu slnka
else {$J = $C; $type = "zapadá"; }
# výpočet západu slnka
$K = $yday + (($J - $F) / $D);
$L = ($K * .017202) - .0574039;
$M = $L + .0334405 * sin($L);
$M += 4.93289 + (3.49066E-04) * sin(2 * $L);
if ($D == 0) {$problem = TRUE;}
while ($M < 0) {$M = ($M + $D);}
while ($M >= $D) {$M = ($M - $D);}
if (($M / $A) - intval($M / $A) == 0) {$M += 4.84814E-06;}
$P = sin($M) / cos($M);
$P = atan2(.91746 * $P, 1);
if ($M > $C) {$P += $D;}
else {if ($M > $A) {$P += $B;} }
$Q = .39782 * sin($M);
$Q = $Q / sqrt(-$Q * $Q + 1);
$Q = atan2($Q, 1);
$S = $R - (sin($Q) * sin($E));
$S = $S / (cos($Q) * cos($E));
if (abs($S) > 1) {$problem = TRUE;}
$S = $S / sqrt(-$S * $S + 1);
$S = $A - atan2($S, 1);
if ($type == 'vychádza') {$S = $D - $S ;}
$T = $S + $P - 0.0172028 * $K - 1.73364;
$U = $T - $F;
$V = $U + $G;
if ($D == 0) {$problem = TRUE;}
while ($V < 0) {$V = ($V + $D);}
while ($V >= $D) {$V = ($V - $D);}
$V = $V * 3.81972;
$hour = intval($V);
$min = intval((($V - $hour) * 60) + 0.5);
if ($type == "vychádza"){
$vychod = mktime($hour,$min,0,$mon,$mday,$year);
}
if ($type == "zapadá"){
$zapad = mktime($hour,$min,0,$mon,$mday,$year);
}
}
##################################
# identifikacia pomocou obrázkov #
##################################
@$alt = $oblaky_1; //popisok pri img v alt=""
$aktual_cas = time();
if ($aktual_cas > $vychod && $aktual_cas < $zapad) { // je noc alebo den
$noc = NULL;
} else {
$noc = "n_";
}
if (@$oblaky[0] == "- jasno" && @$hmla_icon == "fog.png") { // ak je jasno a hmla
@$obrazok = $icons_folder. $noc. "0cloud_fog.png";
} elseif (@$oblaky[0] == "- jasno"){ // ak je jasno
@$obrazok = $icons_folder. $noc. "0cloud.png";
} else {
if (@strlen($zrazky_1) > 0) { // ak sú zrážky
$obrazok = $icons_folder. $noc. $oblacnost_icon. $znamienko_zrazky_icon. $zrazky_icon;
} elseif (@strlen($burky_1) > 0 ) { // ak sú búrky
$obrazok = $icons_folder. $noc. $oblacnost_icon. $znamienko_zrazky_icon. $zrazky_icon;
} elseif (@$hmla_icon == "fog.png") { // ak je hmla
$obrazok = $icons_folder. $noc. $oblacnost_icon. $znamienko_zrazky_icon. $hmla_icon;
} else { $obrazok = $icons_folder. $noc. $oblacnost_icon. "norain.png"; // ak nie je nic
}
}//else
if (!file_exists($obrazok)) { //kontrola ci obrázok existuje
$obrazok = $icons_folder. $noc. "no_data.png";
$alt = "Obrázok nenájdený";
}
$sablonaNahrazeni = "<h3>" .$nadpis. "</h3>\n";
$sablonaNahrazeni .= "<ul class=\"no\" id=\"white\">\n";
$sablonaNahrazeni .= "\t<li>" .$mesto. "</li>\n";
$sablonaNahrazeni .= "\t<li>Teplota vzduchu: <strong>" .$teplota. "</strong> °C</li>\n";
if (isset($oblaky_1)) $sablonaNahrazeni .= "\t<li>" .$oblaky_1. "</li>\n";
if (isset($burky_1)) $sablonaNahrazeni .= "\t<li>" .$znamienko_burky. $burky_1. "</li>\n"; // ak nie su tak nic
if (isset($hmla)) $sablonaNahrazeni .= "\t<li>" .$hmla. "</li>\n"; // ak nie su tak nic
if (isset($zrazky_1)) $sablonaNahrazeni .= "\t<li>" .$znamienko_zrazky. $zrazky_1. "</li>\n"; // ak nie su tak nic
$sablonaNahrazeni .= "\t<li><img src=\"$obrazok\" alt=\"$alt\" title=\"$alt\" /></li>\n";
$sablonaNahrazeni .= "</ul>\n";
} // koniec else kontrola ci je $retazec
if (@$problem == TRUE){
$sablonaNahrazeni = "<h3>" .$nadpis. "</h3>\n";
$sablonaNahrazeni .= "<ul class=\"no\" id=\"white\">\n";
$sablonaNahrazeni .= "\t<li>Nepodarilo sa načítať údaje o počasí!!!</li>\n";
$sablonaNahrazeni .= "\t<li>Alebo si zadal zlú skratku!!!</li>\n";
$sablonaNahrazeni .= "</ul>\n";
}
return "$sablonaNahrazeni"; // výstup pre Etomite!
..:: Etomite CMS → Rulezzz !.!.!. ::..
Re: Pocasie na web
cavte,
ked sa pozries na stranku http://weather.noaa.gov/weather/SK_cc.html
co je zdroj udajov pre snippet Pocasie zistis ze funguju aj nasledovne miesta, ktore ziskavaju udaje o pocasi okrem uvedenych styroch:
Prievidza (LZPE) 48-45-59N 018-35-18E
Sliač (LZSL) 48-38-17N 019-08-03E
Dolný Hričov (LZZI) 49-14N 018-36-49E
Lučenec (LZLU) 48-20N 019-44E
Kamenica nad Cirochou (LZKC) 48-56N 022-00E
V zatvorke je skratka, ktoru das do snippetu (to je nazov zdrojoveho suboru) a natiahne ti udaje podla aktualnej hodiny..
Mne funguje Sliac spolahlivo...
V zatvorke su priblizne suradnice miesta merania (vsetko letiska)..mimochodom suradnice slaicu su presne stred pristavacej drahy
-enzo-
ked sa pozries na stranku http://weather.noaa.gov/weather/SK_cc.html
co je zdroj udajov pre snippet Pocasie zistis ze funguju aj nasledovne miesta, ktore ziskavaju udaje o pocasi okrem uvedenych styroch:
Prievidza (LZPE) 48-45-59N 018-35-18E
Sliač (LZSL) 48-38-17N 019-08-03E
Dolný Hričov (LZZI) 49-14N 018-36-49E
Lučenec (LZLU) 48-20N 019-44E
Kamenica nad Cirochou (LZKC) 48-56N 022-00E
V zatvorke je skratka, ktoru das do snippetu (to je nazov zdrojoveho suboru) a natiahne ti udaje podla aktualnej hodiny..
Mne funguje Sliac spolahlivo...
V zatvorke su priblizne suradnice miesta merania (vsetko letiska)..mimochodom suradnice slaicu su presne stred pristavacej drahy
-enzo-
Re: Pocasie na web
ahoj, ale ty vlastne zhanas predpoved pocasia a nie
aktualne pocasie...
-e-
aktualne pocasie...
-e-
- _rasel^
- ETOMITE Admin
- Príspevky: 1122
- Dátum registrácie: Ut Sep 20, 2005 1:03 am
- Bydlisko: Košice (SR)
- Kontaktovať používateľa:
Re: Pocasie na web
Uff, nj (prehliadol som to), tak sa skúsim neskôr pozrieť na XML Googlu, to vyzerá byť najnevhodnejšia cesta...
..:: Etomite CMS → Rulezzz !.!.!. ::..
Re: Pocasie na web
Na tom Google nie sú vždy aktuálne dáta.. npr.dnes sú tam zo soboty 21.3 o 16.00..
enzo
enzo
- Marek Adamec
- Medium Star
- Príspevky: 246
- Dátum registrácie: Pi Dec 28, 2007 7:58 pm
- Bydlisko: Dubnica nad Váhom
- Kontaktovať používateľa:
Re: Pocasie na web
sak google dava aj atkualny stav pocasia aj pocasie na dalsie dni... http://www.google.com/search?hl=en&lr=& ... tnG=Search
Len neviem ako to mam spravit aby som mohol cerpat to pocasie na svoj web...
Len neviem ako to mam spravit aby som mohol cerpat to pocasie na svoj web...
- _rasel^
- ETOMITE Admin
- Príspevky: 1122
- Dátum registrácie: Ut Sep 20, 2005 1:03 am
- Bydlisko: Košice (SR)
- Kontaktovať používateľa:
Re: Pocasie na web
Ak sa chceš do toho pustiť, tak ako inšpirácia ti môže slúžiť WebAPI Team script z WhatPulse, ktorý vie čítať XML. Tento script je potrebné upraviť na XML Googlu.
Originál script:
Tento script som upravil pre potreby Etomite, číta XML z adresy: http://whatpulse.org/api/teams/8757.xml a snippet vyzerá takto:
Ak sa tomu trocha budeš venovať, tak myslím, žeby nebol problém upraviť funkciu pre potreby Googlu.
Originál script:
Kód: Vybrať všetko
<pre>
<?
/*
* readTeamStats(teamid)
* - Read WhatPulse team statistics from the webapi into an array.
*
* Author: wasted@whatpulse.org
* Based on script for www.sogamed.com
*/
function readTeamStats($teamid, $team_stats, $members)
{
//
$statistics_tags = array("TeamName", "TeamDescription", "TeamMembers", "TeamClicks",
"TeamKeys", "TeamRank", "TeamDateFormed", "TeamFounder");
$member_tags = array("MemberName", "MemberUserID", "MemberKeys", "MemberClicks",
"MemberLastpulse", "MemberManager", "MemberCountry");
// init xml parser and read xml file
$data = implode("", file("http://whatpulse.org/api/team.php?TeamID=".$teamid));
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $index);
xml_parser_free($parser);
for ($x = 0; $x < sizeof($statistics_tags); $x++)
{
$team_stats[$statistics_tags[$x]] = $values[$index[$statistics_tags[$x]][0]]['value'];
}
for ($x = 0; $x < sizeof($index['Member']); $x++)
{
for ($y = 0; $y < sizeof($member_tags); $y++)
{
if ($values[$index[$member_tags[$y]][$x]]['level'] == 5)
{
$members[$x][$member_tags[$y]] = $values[$index[$member_tags[$y]][$x]]['value'];
}
}
}
}
$team_stats = array();
$members = array();
readTeamStats(3, &$team_stats, &$members);
print_r($team_stats);
print_r($members);
?>
</pre>
Kód: Vybrať všetko
function readTeamStats($teamid, $team_stats, $members)
{
//
$statistics_tags = array("TeamName", "TeamDescription", "TeamMembers", "TeamClicks",
"TeamKeys", "TeamRank", "TeamDateFormed", "TeamFounder", "GeneratedTime");
$member_tags = array("MemberName", "MemberUserID", "MemberKeys", "MemberClicks",
"MemberLastPulse", "MemberManager", "MemberCountry");
// init xml parser and read xml file
$data = implode("", file("http://whatpulse.org/api/teams/".$teamid.".xml"));
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $index);
xml_parser_free($parser);
for ($x = 0; $x < sizeof($statistics_tags); $x++)
{
$team_stats[$statistics_tags[$x]] = $values[$index[$statistics_tags[$x]][0]]['value'];
}
for ($x = 0; $x < sizeof($index['Member']); $x++)
{
for ($y = 0; $y < sizeof($member_tags); $y++)
{
if ($values[$index[$member_tags[$y]][$x]]['level'] == 5)
{
$members[$x][$member_tags[$y]] = $values[$index[$member_tags[$y]][$x]]['value'];
}
}
}
}
$team_stats = array();
$members = array();
readTeamStats(8757, &$team_stats, &$members);
$eto_team = ("<table style='text-align: center;'>
<tr><th>Meno tímu</th><td><strong>".$team_stats['TeamName']."</strong><br /><em>".$team_stats['TeamDescription']."</em></td></tr>
<tr><th>Členov</th><td>".$team_stats['TeamMembers']."</td></tr>
<tr><th>Klávesy v tíme</th><td>".number_format ($team_stats['TeamKeys'], 0, ',', ' ')."</td></tr>
<tr><th>Kliknut v tíme</th><td>".number_format ($team_stats['TeamClicks'], 0, ',', ' ')."</td></tr>
<tr><th>Poradie tímu vo svete</th><td>".number_format ($team_stats['TeamRank'], 0, ',', ' ')."</td></tr>
<tr><th>Dátum založenia</th><td>".$team_stats['TeamDateFormed']."</td></tr>
<tr><th>Posledný update štatistík</th><td>".$team_stats['GeneratedTime']."</td></tr></table>");
$eto_members = "<p>(F) = Zakladateľ<br />(M) = Manažér</p><p><strong>Zoznam členov: </strong>: ";
for ($x = 0; $x < $team_stats['TeamMembers']; $x++)
{
$rank = $x+1;
$founder = ($team_stats['TeamFounder'] == $members[$x]['MemberName'])?$founder = " (F)":$founder = "";
$manager = ($members[$x]['MemberManager'] == "Yes")?$manager = " (M)":$manager = "";
$eto_members .= "<em>".$members[$x]['MemberName'].$founder.$manager."</em>";
if(($x+1) < $team_stats['TeamMembers']) {$eto_members .= ", ";} else {$eto_members .= ".</p>";}
}
$eto_members .= "<table style='width: 100%; text-align: center;'>";
$eto_members .= "<tr><th>Rank</th><th>Nick</th><th>Klávesy</th><th>Kliknutia</th><th>Posledné pulznutie</th><th>Štát</th></tr>";
for ($x = 0; $x < $team_stats['TeamMembers']; $x++)
{
$rank = $x+1;
$member_percentage_key = $members[$x]['MemberKeys'] / $members[0]['MemberKeys'] * 100;
$founder = ($team_stats['TeamFounder'] == $members[$x]['MemberName'])?$founder = " (F)":$founder = "";
$manager = ($members[$x]['MemberManager'] == "Yes")?$manager = " (M)":$manager = "";
$eto_members .= "<tr><td>".$rank.". [".number_format ($member_percentage_key, 3, '.', ' ')." %]</td><td><a href='http://whatpulse.org/stats/users/".$members[$x]['MemberUserID']."/'>".$members[$x]['MemberName']."</a>".$founder.$manager."</td><td>".number_format ($members[$x]['MemberKeys'], 0, ',', ' ')."</td><td>".number_format ($members[$x]['MemberClicks'], 0, ',', ' ')."</td><td>".$members[$x]['MemberLastPulse']."</td><td>".$members[$x]['MemberCountry']."</td></tr>";
}
$eto_members .= "</table>";
return $eto_team.$eto_members;
..:: Etomite CMS → Rulezzz !.!.!. ::..
- Marek Adamec
- Medium Star
- Príspevky: 246
- Dátum registrácie: Pi Dec 28, 2007 7:58 pm
- Bydlisko: Dubnica nad Váhom
- Kontaktovať používateľa:
Re: Pocasie na web
dostal som sa k tymto informaciam o pocasi z google:
Predpoved pocasia (Google)
Autor: stenley
Popis:
Nasledujuca trieda sluzi na ziskanie údajov o pocasi z Google API pre zadane mesto na niekolko dni. Informacie sa ukladaju do pola, ktoreho struktura je popisana v prikladoch pouzitia. Je to len ukazka, v reali by bolo asi vhodnejsie xml-ko najskor stiahnut, ulozit na disk (napr. cron) a nasledne s nim pracovat. V pripade, ze je zadane mesto, ktore Google nepozna, vracia sa prazdne pole.
kod:
Priklad pouzitia:
kod:
Vysledok:
kod:
Vysvetlivky:
[0] - pole s aktualnym pocasim
[1] - pole s pocasim na dnes
[2] - pole s pocasim na zajtra
[3] - pole s pocasim na pozajtra
[4] - pole s pocasim na popozajtra
[condition] - slovny popis pocasia
[temp_f] - teplota vo F
[temp_c] - teplota v C
[humidity] - vlhkost vzduchu
[icon] - obrazok (slnko, dazd, ...)
[wind_condition] - veterne podmienky
[day_of_week] - skratka nazvu dna
[low] - najnizsia teplota
[high] - najvyssia teplota
Predpoved pocasia (Google)
Autor: stenley
Popis:
Nasledujuca trieda sluzi na ziskanie údajov o pocasi z Google API pre zadane mesto na niekolko dni. Informacie sa ukladaju do pola, ktoreho struktura je popisana v prikladoch pouzitia. Je to len ukazka, v reali by bolo asi vhodnejsie xml-ko najskor stiahnut, ulozit na disk (napr. cron) a nasledne s nim pracovat. V pripade, ze je zadane mesto, ktore Google nepozna, vracia sa prazdne pole.
kod:
Kód: Vybrať všetko
<?php
/**
* GoogleWeather
*
* Predpoved pocasia (google)
*
* @author stenley <stenley@webdev.sk>
* @version 1.0
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
class GoogleWeather {
var $lang = "sk";
var $country = "Slovakia";
var $charset = "utf-8";
function getWeatherObj($city) {
$data = @file_get_contents("http://www.google.com/ig/api?weather=".$city.",".$this->country."&hl=".$this->lang);
if(!$data) {
return false;
}
$data = iconv("ISO-8859-2",$this->charset,$data);
return new SimpleXMLElement($data);
}
function getWeatherInfo($city) {
$weather = array();
$obj = $this->getWeatherObj($city);
$data = $obj->xpath("/xml_api_reply/weather/current_conditions");
if(!empty($data)) {
$weather[] = array(
"condition" => $this->getAttr($data[0]->xpath("condition")),
"temp_f" => $this->getAttr($data[0]->xpath("temp_f")),
"temp_c" => $this->getAttr($data[0]->xpath("temp_c")),
"humidity" => $this->getAttr($data[0]->xpath("humidity")),
"icon" => $this->getAttr($data[0]->xpath("icon")),
"wind_condition" => $this->getAttr($data[0]->xpath("wind_condition"))
);
}
$data = $obj->xpath("/xml_api_reply/weather/forecast_conditions");
if(!empty($data)) {
foreach($data as $value) {
$weather[] = array(
"day_of_week" => $this->getAttr($value->xpath("day_of_week")),
"low" => $this->getAttr($value->xpath("low")),
"high" => $this->getAttr($value->xpath("high")),
"icon" => $this->getAttr($value->xpath("icon")),
"condition" => $this->getAttr($value->xpath("condition"))
);
}
}
return $weather;
}
function getAttr($obj) {
$attr = $obj[0]->attributes();
return (string)$attr['data'];
}
}
?>
kod:
Kód: Vybrať všetko
$gw = new GoogleWeather();
$weather = $gw->getWeatherInfo("Bratislava"); //pocasie pre Bratislavu
print_r($weather);
//$weather = $gw->getWeatherInfo("Kosice"); //pocasie pre Kosice
//print_r($weather);
kod:
Kód: Vybrať všetko
Array
(
[0] => Array
(
[condition] => Prevažne oblačno
[temp_f] => 45
[temp_c] => 7
[humidity] => Vlhkosť: 61%
[icon] => /images/weather/mostly_cloudy.gif
[wind_condition] => Vietor: J s rýchlosťou 0 km/h
)
[1] => Array
(
[day_of_week] => Ut
[low] => -2
[high] => 8
[icon] => /images/weather/chance_of_rain.gif
[condition] => Občasný dážď
)
[2] => Array
(
[day_of_week] => St
[low] => 2
[high] => 5
[icon] => /images/weather/chance_of_snow.gif
[condition] => Občasné sneženie
)
[3] => Array
(
[day_of_week] => Št
[low] => 1
[high] => 8
[icon] => /images/weather/chance_of_rain.gif
[condition] => Občasný dážď
)
[4] => Array
(
[day_of_week] => Pi
[low] => 0
[high] => 10
[icon] => /images/weather/chance_of_rain.gif
[condition] => Občasný dážď
)
)
[0] - pole s aktualnym pocasim
[1] - pole s pocasim na dnes
[2] - pole s pocasim na zajtra
[3] - pole s pocasim na pozajtra
[4] - pole s pocasim na popozajtra
[condition] - slovny popis pocasia
[temp_f] - teplota vo F
[temp_c] - teplota v C
[humidity] - vlhkost vzduchu
[icon] - obrazok (slnko, dazd, ...)
[wind_condition] - veterne podmienky
[day_of_week] - skratka nazvu dna
[low] - najnizsia teplota
[high] - najvyssia teplota
- Marek Adamec
- Medium Star
- Príspevky: 246
- Dátum registrácie: Pi Dec 28, 2007 7:58 pm
- Bydlisko: Dubnica nad Váhom
- Kontaktovať používateľa:
Re: Pocasie na web
priblizna predstava vzhladu:
(toto je zo zoznam.sk)
(toto je zo zoznam.sk)
- _rasel^
- ETOMITE Admin
- Príspevky: 1122
- Dátum registrácie: Ut Sep 20, 2005 1:03 am
- Bydlisko: Košice (SR)
- Kontaktovať používateľa:
Re: Pocasie na web
Snippet [[gWeather]/s-code] bude vyzerať takto:
Kód: Vybrať všetko
/**
* GoogleWeather
*
* Predpoved pocasia (google)
*
* @author stenley <stenley@webdev.sk>
* @version 1.0
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
class GoogleWeather {
var $lang = "sk";
var $country = "Slovakia";
var $charset = "utf-8";
function getWeatherObj($city) {
$data = @file_get_contents("http://www.google.com/ig/api?weather=".$city.",".$this->country."&hl=".$this->lang);
if(!$data) {
return false;
}
$data = iconv("ISO-8859-2",$this->charset,$data);
return new SimpleXMLElement($data);
}
function getWeatherInfo($city) {
$weather = array();
$obj = $this->getWeatherObj($city);
$data = $obj->xpath("/xml_api_reply/weather/current_conditions");
if(!empty($data)) {
$weather[] = array(
"condition" => $this->getAttr($data[0]->xpath("condition")),
"temp_f" => $this->getAttr($data[0]->xpath("temp_f")),
"temp_c" => $this->getAttr($data[0]->xpath("temp_c")),
"humidity" => $this->getAttr($data[0]->xpath("humidity")),
"icon" => $this->getAttr($data[0]->xpath("icon")),
"wind_condition" => $this->getAttr($data[0]->xpath("wind_condition"))
);
}
$data = $obj->xpath("/xml_api_reply/weather/forecast_conditions");
if(!empty($data)) {
foreach($data as $value) {
$weather[] = array(
"day_of_week" => $this->getAttr($value->xpath("day_of_week")),
"low" => $this->getAttr($value->xpath("low")),
"high" => $this->getAttr($value->xpath("high")),
"icon" => $this->getAttr($value->xpath("icon")),
"condition" => $this->getAttr($value->xpath("condition"))
);
}
}
return $weather;
}
function getAttr($obj) {
$attr = $obj[0]->attributes();
return (string)$attr['data'];
}
}
$predpovedBratislava = new GoogleWeather();
$pocasieBratislava = $predpovedBratislava->getWeatherInfo("Bratislava");
$predpovedKosice = new GoogleWeather();
$pocasieKosice = $predpovedKosice->getWeatherInfo("Kosice");
$output = ""; // inicializacia
// pocasie [1] na dnes Bratislava
$output .= '<p>Bratislava<br />';
$output .= $pocasieBratislava[1]['low'].'°C/'; // najnizsia teplota
$output .= $pocasieBratislava[1]['high'].'°C<br />'; // najvyssia teplota
$output .= '<img src="http://www.google.com/ig'.$pocasieBratislava[1]['icon'].'" alt="Bratislava: predpoveď na dnes" /><br />'; // ikonka
$output .= $pocasieBratislava[1]['condition'].'</p>'; // slovny popis pocasia
// pocasie [1] na dnes Košice
$output .= '<p>Košice<br />';
$output .= $pocasieKosice[1]['low'].'°C/'; // najnizsia teplota
$output .= $pocasieKosice[1]['high'].'°C<br />'; // najvyssia teplota
$output .= '<img src="http://www.google.com/ig'.$pocasieKosice[1]['icon'].'" alt="Košice: predpoveď na dnes" /><br />'; // ikonka
$output .= $pocasieKosice[1]['condition'].'</p>'; // slovny popis pocasia
return $output;
..:: Etomite CMS → Rulezzz !.!.!. ::..
- Marek Adamec
- Medium Star
- Príspevky: 246
- Dátum registrácie: Pi Dec 28, 2007 7:58 pm
- Bydlisko: Dubnica nad Váhom
- Kontaktovať používateľa:
Re: Pocasie na web
v snippete sa nedaju pouzivat tabulky? lebo ked som skusal tak to rozhodilo cely web a vypisalo error...
skusal som toto ale neslo to:
chcel by som aby to vypadalo takto (a aby ked ukazes na obrazok dalo textovi popis pocasia... ):
skusal som toto ale neslo to:
Kód: Vybrať všetko
<table border="150">
<tbody>
<tr>
<td>
$output .= '<img src="http://www.google.com/ig'.$pocasieBratislava[1]['icon'].'" alt="Bratislava: predpoveď na dnes" /><br />'; // ikonka
</td>
<td>
$output .= '<p><strong>Bratislava</strong><br />';
$output .= $pocasieBratislava[1]['low'].'°C/'; // najnizsia teplota
$output .= $pocasieBratislava[1]['high'].'°C<br />'; // najvyssia teplota
</td>
</tr>
</tbody>
</table>
</p>
- Marek Adamec
- Medium Star
- Príspevky: 246
- Dátum registrácie: Pi Dec 28, 2007 7:58 pm
- Bydlisko: Dubnica nad Váhom
- Kontaktovať používateľa:
Re: Pocasie na web
tu je moj upraveny snippet: (ale je tam este jedna mala chyba a to ze medzi jednotlivimi mestami je odskok 3 volnych riadkov, nemozem najst kde to je zadeklarovane... (a pri condition je zle kodovanie namiesto slov su tam haky baky..., a dalsia nevyhoda je ze ked je dlhsi popis tak to presiahne cez 150 pixelov... preto by som to chcel potom zadaklarovat do nazvu pri ukazani na ikonku predpovede... ) )
;
takto to vypada v realy http://www.navrchol.sk/index.php?id=426 ale v IE to je ok a v opere je to poporuvane sak ked kuknete uvidite...
Kód: Vybrať všetko
/**
* GoogleWeather
*
* Predpoved pocasia (google)
*
* @author stenley <stenley@webdev.sk>
* @version 1.0
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
class GoogleWeather {
var $lang = "sk";
var $country = "Slovakia";
var $charset = "utf-8";
function getWeatherObj($city) {
$data = @file_get_contents("http://www.google.com/ig/api?weather=".$city.",".$this->country."&hl=".$this->lang);
if(!$data) {
return false;
}
$data = iconv("ISO-8859-2",$this->charset,$data);
return new SimpleXMLElement($data);
}
function getWeatherInfo($city) {
$weather = array();
$obj = $this->getWeatherObj($city);
$data = $obj->xpath("/xml_api_reply/weather/current_conditions");
if(!empty($data)) {
$weather[] = array(
"condition" => $this->getAttr($data[0]->xpath("condition")),
"temp_f" => $this->getAttr($data[0]->xpath("temp_f")),
"temp_c" => $this->getAttr($data[0]->xpath("temp_c")),
"humidity" => $this->getAttr($data[0]->xpath("humidity")),
"icon" => $this->getAttr($data[0]->xpath("icon")),
"wind_condition" => $this->getAttr($data[0]->xpath("wind_condition"))
);
}
$data = $obj->xpath("/xml_api_reply/weather/forecast_conditions");
if(!empty($data)) {
foreach($data as $value) {
$weather[] = array(
"day_of_week" => $this->getAttr($value->xpath("day_of_week")),
"low" => $this->getAttr($value->xpath("low")),
"high" => $this->getAttr($value->xpath("high")),
"icon" => $this->getAttr($value->xpath("icon")),
"condition" => $this->getAttr($value->xpath("condition"))
);
}
}
return $weather;
}
function getAttr($obj) {
$attr = $obj[0]->attributes();
return (string)$attr['data'];
}
}
$predpovedBratislava = new GoogleWeather();
$pocasieBratislava = $predpovedBratislava->getWeatherInfo("Bratislava");
$predpovedNitra = new GoogleWeather();
$pocasieNitra = $predpovedNitra->getWeatherInfo("Nitra");
$predpovedTrnava = new GoogleWeather();
$pocasieTrnava = $predpovedTrnava->getWeatherInfo("Trnava");
$predpovedTrencin = new GoogleWeather();
$pocasieTrencin = $predpovedTrencin->getWeatherInfo("Trencin");
$predpovedZilina = new GoogleWeather();
$pocasieZilina = $predpovedZilina->getWeatherInfo("Zilina");
$predpovedPoprad = new GoogleWeather();
$pocasiePoprad = $predpovedPoprad->getWeatherInfo("Poprad");
$predpovedPresov = new GoogleWeather();
$pocasiePresov = $predpovedPresov->getWeatherInfo("Presov");
$predpovedKosice = new GoogleWeather();
$pocasieKosice = $predpovedKosice->getWeatherInfo("Kosice");
$output = ""; // inicializacia
// pocasie [2] na dnes Bratislava
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieBratislava[2]['icon'].'" alt="Bratislava: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Bratislava</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieBratislava[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieBratislava[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Nitra
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieNitra[2]['icon'].'" alt="Nitra: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Nitra</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieNitra[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieNitra[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Trnava
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieTrnava[2]['icon'].'" alt="Trnava: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Trnava</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieTrnava[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieTrnava[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Trencin
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieTrencin[2]['icon'].'" alt="Trencin: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Trenčín</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieTrencin[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieTrencin[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Zilina
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieZilina[2]['icon'].'" alt="Žilina: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Žilina</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieZilina[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieZilina[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Poprad
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasiePoprad[2]['icon'].'" alt="Poprad: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Poprad</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasiePoprad[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasiePoprad[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Presov
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasiePresov[2]['icon'].'" alt="Prešov: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Prešov</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasiePresov[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasiePresov[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na dnes Kosice
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieKosice[2]['icon'].'" alt="Košice: predpoveď na zajtra" /> </td> <br />'; // ikonka
$output .= '<td width="120"><p><strong>Košice</strong></td><br />';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieKosice[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieKosice[2]['low'].'°C </td> <br />'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
return $output
takto to vypada v realy http://www.navrchol.sk/index.php?id=426 ale v IE to je ok a v opere je to poporuvane sak ked kuknete uvidite...
- _rasel^
- ETOMITE Admin
- Príspevky: 1122
- Dátum registrácie: Ut Sep 20, 2005 1:03 am
- Bydlisko: Košice (SR)
- Kontaktovať používateľa:
Re: Pocasie na web
Tabuľky nemám veľmi rád... a čo takto:
Kód: Vybrať všetko
<div class="pocasie">
<span class="ikonka"><img src="http://www.google.com/ig/images/weather/chance_of_rain.gif" alt="Bratislava: predpoveď na zajtra"></span>
<span class="mesto">Bratislava</span><br />
<span class="teploty">11°C / 2°C</span>
</div>
Kód: Vybrať všetko
.pocasie {
display: block;
}
.ikonka, .mesto, .teploty {
float: left;
}
.ikonka {
padding-right: 3px;
}
..:: Etomite CMS → Rulezzz !.!.!. ::..
- Marek Adamec
- Medium Star
- Príspevky: 246
- Dátum registrácie: Pi Dec 28, 2007 7:58 pm
- Bydlisko: Dubnica nad Váhom
- Kontaktovať používateľa:
Re: Pocasie na web
tu je moj posledny funkcny kod na predpoved pocasia z googlu, ale uz nefunguje lebo nechce zobrazovat vobec obrazky pocasia... ale neviem preco, dlhsie som to nepouzival a teraz ked som to chcel spravadzkovat tak to uz blbne...:
Kód: Vybrať všetko
/**
* GoogleWeather
*
* Predpoved pocasia (google)
*
* @author stenley <stenley@webdev.sk>
* @version 1.0
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
class GoogleWeather {
var $lang = "sk";
var $country = "Slovakia";
var $charset = "utf-8";
function getWeatherObj($city) {
$data = @file_get_contents("http://www.google.com/ig/api?weather=".$city.",".$this->country."&hl=".$this->lang);
if(!$data) {
return false;
}
$data = iconv("ISO-8859-2",$this->charset,$data);
return new SimpleXMLElement($data);
}
function getWeatherInfo($city) {
$weather = array();
$obj = $this->getWeatherObj($city);
$data = $obj->xpath("/xml_api_reply/weather/current_conditions");
if(!empty($data)) {
$weather[] = array(
"condition" => $this->getAttr($data[0]->xpath("condition")),
"temp_f" => $this->getAttr($data[0]->xpath("temp_f")),
"temp_c" => $this->getAttr($data[0]->xpath("temp_c")),
"humidity" => $this->getAttr($data[0]->xpath("humidity")),
"icon" => $this->getAttr($data[0]->xpath("icon")),
"wind_condition" => $this->getAttr($data[0]->xpath("wind_condition"))
);
}
$data = $obj->xpath("/xml_api_reply/weather/forecast_conditions");
if(!empty($data)) {
foreach($data as $value) {
$weather[] = array(
"day_of_week" => $this->getAttr($value->xpath("day_of_week")),
"low" => $this->getAttr($value->xpath("low")),
"high" => $this->getAttr($value->xpath("high")),
"icon" => $this->getAttr($value->xpath("icon")),
"condition" => $this->getAttr($value->xpath("condition"))
);
}
}
return $weather;
}
function getAttr($obj) {
$attr = $obj[0]->attributes();
return (string)$attr['data'];
}
}
$predpovedBratislava = new GoogleWeather();
$pocasieBratislava = $predpovedBratislava->getWeatherInfo("Bratislava");
$predpovedNitra = new GoogleWeather();
$pocasieNitra = $predpovedNitra->getWeatherInfo("Nitra");
$predpovedTrnava = new GoogleWeather();
$pocasieTrnava = $predpovedTrnava->getWeatherInfo("Trnava");
$predpovedTrencin = new GoogleWeather();
$pocasieTrencin = $predpovedTrencin->getWeatherInfo("Trencin");
$predpovedZilina = new GoogleWeather();
$pocasieZilina = $predpovedZilina->getWeatherInfo("Zilina");
$predpovedPoprad = new GoogleWeather();
$pocasiePoprad = $predpovedPoprad->getWeatherInfo("Poprad");
$predpovedPresov = new GoogleWeather();
$pocasiePresov = $predpovedPresov->getWeatherInfo("Presov");
$predpovedKosice = new GoogleWeather();
$pocasieKosice = $predpovedKosice->getWeatherInfo("Kosice");
$output = ""; // inicializacia
// pocasie [2] na dnes Bratislava
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieBratislava[2]['icon'].'" alt="Bratislava: predpoveď na zajtra" /> </td>'; // ikonka
$output .= '<td width="100"><strong>Bratislava</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieBratislava[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieBratislava[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Nitra
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieNitra[2]['icon'].'" alt="Nitra: predpoveď na zajtra" /> </td> '; // ikonka
$output .= '<td width="120"><strong>Nitra</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieNitra[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieNitra[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Trnava
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieTrnava[2]['icon'].'" alt="Trnava: predpoveď na zajtra" /> </td>'; // ikonka
$output .= '<td width="120"><strong>Trnava</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieTrnava[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieTrnava[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Trencin
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieTrencin[2]['icon'].'" alt="Trencin: predpoveď na zajtra" /> </td>'; // ikonka
$output .= '<td width="120"><strong>Trenčín</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieTrencin[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieTrencin[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Zilina
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieZilina[2]['icon'].'" alt="Žilina: predpoveď na zajtra" /> </td>'; // ikonka
$output .= '<td width="120"><strong>Žilina</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieZilina[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieZilina[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Poprad
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasiePoprad[2]['icon'].'" alt="Poprad: predpoveď na zajtra" /> </td>'; // ikonka
$output .= '<td width="120"><strong>Poprad</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasiePoprad[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasiePoprad[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na zajtra Presov
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasiePresov[2]['icon'].'" alt="Prešov: predpoveď na zajtra" /> </td>'; // ikonka
$output .= '<td width="120"><strong>Prešov</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasiePresov[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasiePresov[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
// pocasie [2] na dnes Kosice
$output .= '<table>';
$output .= '<tr>';
$output .= '<td rowspan="2"><img src="http://www.google.com/ig'.$pocasieKosice[2]['icon'].'" alt="Košice: predpoveď na zajtra" /> </td>'; // ikonka
$output .= '<td width="120"><strong>Košice</strong></td>';
$output .= '</tr><tr>';
$output .= '<td colspan="2">'. $pocasieKosice[2]['high'].'°C / '; // najvyssia teplota
$output .= $pocasieKosice[2]['low'].'°C </td>'; // najnizsia teplota
$output .= '</tr>';
$output .= '</table>';
return $output;