Autor | Zpráva | ||
---|---|---|---|
peta Profil |
#1 · Zasláno: 26. 7. 2011, 08:30:33
Je mozne nejak z http://api.jquery.com/ stahnout pouze cast tykajici se requestu a parsovani v xml?
Sem si chtel dat do google mapy pocasi a nenasel jsem na googlu zatim zadne api, co to rozparsuje. Samozrejme si to muzu napsat sam, ale radeji dam prednost proverenemu reseni. jquery je fajn, ale prijde mi to jako ne moc vhodne pridat 200k kodu kvuli requestu. http://www.google.com/ig/api?weather=opava,cz |
||
_es Profil |
#2 · Zasláno: 26. 7. 2011, 09:11:59 · Upravil/a: _es
Jquery ti v tomto nepomôže, ide o dáta z inej domény, ku ktorým nie je v JS prístup - možno len v niektorých prehliadačoch a ak to má Google správne nastavené. Jedine, že by Google poskytoval aj možnosť cez JSONP.
|
||
peta Profil |
#3 · Zasláno: 26. 7. 2011, 09:26:20 · Upravil/a: peta
No jo, pravda, na to jsem nepomyslel :)
Ok, tak to soupnu pres vlastni php, ale parsovat bych to chtel v js? |
||
_es Profil |
#4 · Zasláno: 26. 7. 2011, 09:40:36
peta:
„parsovat bych to chtel v js“ Objekt XmlHttpRequest má predsa metódu responseXML , JS knižnice ti na to nie sú treba. Okrem toho by bolo asi lepšie prekonvertovať dáta do JSON, asi je na to v PHP veľa knižníc, do tvaru:
var x = JSONObjekt; |
||
peta Profil |
#5 · Zasláno: 26. 7. 2011, 14:58:51
|
||
peta Profil |
#6 · Zasláno: 26. 7. 2011, 16:48:11
jen je treba tam doplnit &hl=cs a iconv, protoze to google posila v latin-2 misto utf-8 jako pro hl=en
|
||
Witiko Profil |
#7 · Zasláno: 26. 7. 2011, 17:03:26
peta:
To nemá co do činění s javascriptem. Server-side script, který si stáhne XML a ukuchtí z něj html dokument. |
||
peta Profil |
#8 · Zasláno: 27. 7. 2011, 09:48:46 · Upravil/a: peta
Ted uz to nema nic s js. Puvodni plan byl udelat to v js.
Kdyby nekdo mel zajem, tak ma podoba google pocasi vypada v php takto: http://webapp.fpf.slu.cz/gmapa/wheather.php <?php //http://www.google.com/ig/api?weather=opava,cz //http://www.exorithm.com/algorithm/view/weather_forecast function att($att,$type,$row=0) { global $xml; switch ($type) { case 1 : return $xml->weather->current_conditions->{$att}['data']; case 2 : return $xml->weather->forecast_conditions->$row->{$att}['data']; default: return $xml->weather->forecast_information->{$att}['data']; } } function img($url,$width=35,$title) { //return '<img src="http://www.google.com/'.$url.'"/>'; $name = substr($url,strrpos($url,'/')+1,-4); $images = array( 'cloudy' => 'cloudy', 'mostly_cloudy' => 'partly_cloudy', 'chance_of_rain' => 'light_rain', 'chance_of_storm'=> 'tstorms', 'mostly_sunny' => 'mostly_sunny', ); $name = isset($images[$name]) ? $images[$name] : $name; $name = $name.'.png'; $url_folder = $width==60 || $width==35 ? $width : 35; return '<img src="http://ssl.gstatic.com/onebox/weather/'.$url_folder.'/'.$name.'" alt="'.$name.'" width="'.$width.'" title="'.$title.'">'; } header('content-type: text/html; charset: utf-8'); $data = file_get_contents('http://www.google.com/ig/api?weather=opava,cz&hl=cs'); $data = iconv("iso-8859-2", "UTF-8", $data ); $xml = simplexml_load_string($data); $loc = str_replace(',',', ',att('city',0)); $date = att('forecast_date',0); $t = '°C'; $html = ' <html> <head> <title>Počasí</title> <style type="text/css"> html, body {margin:0;padding:0;} .f1, .f2 {border-collapse:collapse; border-spacing:0;} .f1 caption {font-weight:bold;text-align:left;} .f1 caption:first-letter {text-transform:uppercase;} .f2 {color:#666;} .f1 .temp {font-size:125%;} .f2 .temp {font-size:85%;} </style> </head> <body> '; $html .= " <table class=\"f1\" summary=\"Aktuální počasí pro ".$loc."\"> <caption>".$loc."</caption> <tr> <td width=\"35\">".img(att('icon',1),35,att('condition',1))."</td> <td><div class=\"temp\">".att('temp_c',1).$t."</div></td> </tr> <tr> <td colspan=\"2\"> <div class=\"wind\">".preg_replace('/\ss.*?rychlostí/',',',att('wind_condition',1))."</div> <div class=\"hum\">" .att('humidity',1)."</div> </td> </tr> </table>"; $html .= " <table class=\"f2\" summary=\"Předpověď počasí\">"; for ($i=0;$i<3;$i++) { $html .= " <tr> <td>".img(att('icon',2,$i),16,att('condition',2,$i))."</td> <td><div class=\"temp\">".att('high',2,$i).$t.', '.att('low',2,$i).$t."</div></td> <td> ".att('day_of_week',2,$i)."</td> </tr>"; } $html .= " </table> </body> </html> "; echo $html; ?> |
||
Časová prodleva: 13 let
|
0