Lju Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 (endret) Yr.no har som de fleste sikkert vet offentliggjort alle sine værdata, og lagt opp til at privatpersoner kan inplantere deres værdata på sine egne hjemmesider. De er faktisk så rause at de har ferdiglaget kodene for å utføre nevnte også. Jeg lurte på om det var noen her som kunne hjelpe meg litt, da jeg tenkte jeg skulle endre litt på denne. De har et javascript-varsel som t.ex. viser dette varselet: yr.no: Værvarsel for Kristiansund lufthavn, Kvernberget, tirsdag dagtid: Delvis skyet og 16° Hva jeg tenkte på var om det gikk an å lage en slags kode som automatisk genererer et bilde for hvert varsel. Eksempelvis, om det varsles om "delvis skyet" vær, genereres det automatisk et ikon som illustrerer dette. (man har da selvsagt ett ikon for hvert mulige varsel) Jeg sitter ikke på nok datakunskaper til å lage noe slikt selv, så derfor er vel dette egentlig en liten request om noen kunne gjøre det for meg, evt. hjelpe meg? Takk, takk. -Lju Endret 21. juli 2008 av Lju Lenke til kommentar
Wattengård Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 Hvis du ser på XML-feeden til yr.no så er det en node som heter <tabular>. Denne inneholder maskinlesbar informasjon om været. <tabular> − <time from="2008-07-22T18:00:00" to="2008-07-23T00:00:00" period="3"> − <!-- Valid from 2008-07-22T18:00:00 to 2008-07-23T00:00:00 --> <symbol number="1" name="Sol"/> <precipitation value="0.0"/> <!-- Valid at 2008-07-22T18:00:00 --> <windDirection deg="147.0" code="SSE" name="Sør-sørøst"/> <windSpeed mps="3.1" name="Svak vind"/> <temperature unit="celcius" value="26"/> <pressure unit="hPa" value="1012.2"/> </time> Her ser du bl.a. noden <symbol> som har forskjellig verdi etter hvordan været blir. Så den enkleste måten dette da kan gjøres på må vel være å lage ikoner som heter 1.jpg, 2.jpg, 3.jpg osv som viser korrekt symbol. Selve programmeringen tar jeg ikke på sparket da du hverken sier noe om hva du skal bruke det til eller hvilket språk det ønskes i... -C- Lenke til kommentar
Lju Skrevet 22. juli 2008 Forfatter Del Skrevet 22. juli 2008 Jeg skal bruke det på Denne siden når jeg etterhvert får den over på domenet mitt, og validert den osv. Du ser at jeg har tekstversjonen fra yr i venstre kolonne på startsiden. Norsk funker fint om det er mulig. Jeg har et sett med ikoner, som jeg tror skal dekke det meste av mulige varsler. Nå bruker jeg den "enkle" versjonen som de så fint kaller det, med javascript som bare er limt inn i siden. Lenke til kommentar
Wattengård Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 Hvorfor ikke bare bruke det litt større alternativet fra http://www.yr.no/sted/Norge/M%C3%B8re_og_R...et/data.html#js Den passer jo greit inn på siden din... -C- Lenke til kommentar
Lju Skrevet 22. juli 2008 Forfatter Del Skrevet 22. juli 2008 Tenkte jeg skulle ha det så enkelt som mulig, uten et stort yr.no banner, og farger som passer litt dårlig. Det jeg tenkte på var noe slikt (se vedlegg) Lenke til kommentar
Wattengård Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 Kan du bruke PHP(el.l.) eller må det være javascript? -C- Lenke til kommentar
Lju Skrevet 23. juli 2008 Forfatter Del Skrevet 23. juli 2008 Trenger ikke være Javascript nei. Jeg tror at PHP skal gå greit, men hva vet jeg Lenke til kommentar
Thlom Skrevet 4. august 2008 Del Skrevet 4. august 2008 Skal du bruke data fra Yr så må du opplyse om at dataene kommer fra Yr og ha en lenke tilbake til relevant side hos yr.no Alt innhald som du hentar frå oss skal merkast på fylgjande måte: * «Vêrvarsel frå yr.no, levert av Meteorologisk institutt og NRK» (nynorsk). * «Værvarsel fra yr.no, levert av Meteorologisk institutt og NRK» (bokmål). * «Weather forecast from yr.no, delivered by the Norwegian Meteorological Institute and the NRK» (engelsk). Merkinga skal vere i same skriftstorleik som resten av teksten din, og skal vere godt synleg for publikum.Teksten skal vere ei lenke til den aktuelle sida varselet er henta frå, f.eks. http://www.yr.no/stad/Noreg/Rogaland/Stavanger/Stavanger/. Dersom du hentar fleire varsel og samlar dei på same side, skal alle stadnamn vere klikkbare til yr.no. http://www.yr.no/verdata/1.3321307 Lenke til kommentar
Lju Skrevet 4. september 2008 Forfatter Del Skrevet 4. september 2008 Jeg løfter denne her litt jeg om det er i orden. Noen som kunne tenkt seg å hjelpe meg litt med dette? Jeg har fått inn yr.no sitt "tekstvarsel" nå, (se her) men om det hadde vært mulig å fått et ikon som skifter med varselet ved siden av hadde det vært flott Lenke til kommentar
KeYhOle Skrevet 10. desember 2008 Del Skrevet 10. desember 2008 Litt gammel tråd, men jeg lurer på det samme. Jeg vet at man kan bruke <symbol number="2" name="Lettskyet" /> fra xml'en til yr. Men kan noen komme med en et script hvor man kobler symbol opp mot symbolnummrene? Symbolene finner man HER. Har man da en dag med <symbol number="2"> så skal dette bilde vises if $xml->tabular->symbel number = 2 then $echo [img=http://www12.nrk.no/nyheter/ver/symbol/Versymbol_100px/02d.png] Er jeg heeelt på jordet? HER er XML fila Lenke til kommentar
KeYhOle Skrevet 12. desember 2008 Del Skrevet 12. desember 2008 Fant det ut. Spør om noen vil ha koden:P Lenke til kommentar
Twinflower Skrevet 16. desember 2008 Del Skrevet 16. desember 2008 Jeg bruker PHP-scriptet, og har skrudd av headers og footers som skal gjøre scriptet kompatibelt til å kjøre inne i en side (man skrur basicly av <html><body></body></html>. Men likevel "stopper" siden min etter yr-scriptet, selv om det er mer HTML igjen. Slik ser outputen til scriptet ut nå: http://foniks.bluescape.org/yr.php <div id="yr-varsel"> <h2><a href="http://www.yr.no/sted/Norge/Møre_og_Romsdal/Molde/Molde_lufthavn,_Årø" target="_top">Værvarsel for Molde_lufthavn,_Årø</a></h2> <p><a href="http://www.yr.no/" target="_top"><strong>Værvarsel fra yr.no, levert av Meteorologisk institutt og NRK.</strong></a></p> <table summary="Værvarsel for Molde_lufthavn,_Årø fra yr.no"> <thead> <tr> <th class="v" colspan="3"><strong>Varsel for Molde_lufthavn,_Årø</strong></th> <th>Nedbør</th> <th>Temp.</th> <th class="v">Vind</th> <th>Vindstyrke</th> </tr> </thead> <tbody> <tr> <td colspan="7" class="skilje"></td> </tr> <tr> <th>17.12.2008</th> <th>00–06</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>3 mm</td> <td class="pluss">6°</td> <td class="v">Lett bris fra sør</td> <td>4 m/s</td> </tr> <tr> <th></th> <th>06–12</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>1 mm</td> <td class="pluss">6°</td> <td class="v">Lett bris fra sør-sørvest</td> <td>5 m/s</td> </tr> <tr> <th></th> <th>12–18</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/02d.png" width="38" height="38" alt="Lettskyet" /></td> <td><1 mm</td> <td class="pluss">4°</td> <td class="v">Laber bris fra sør-sørvest</td> <td>7 m/s</td> </tr> <tr> <th></th> <th>18–24</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/02d.png" width="38" height="38" alt="Lettskyet" /></td> <td>0 mm</td> <td class="pluss">5°</td> <td class="v">Laber bris fra sør-sørvest</td> <td>6 m/s</td> </tr> <tr> <td colspan="7" class="skilje"></td> </tr> <tr> <th>18.12.2008</th> <th>00–06</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/05d.png" width="38" height="38" alt="Regnbyger" /></td> <td>1 mm</td> <td class="pluss">6°</td> <td class="v">Laber bris fra sør</td> <td>7 m/s</td> </tr> <tr> <th></th> <th>06–12</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>2 mm</td> <td class="pluss">6°</td> <td class="v">Laber bris fra sørvest</td> <td>7 m/s</td> </tr> <tr> <th></th> <th>12–18</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>4 mm</td> <td class="pluss">7°</td> <td class="v">Laber bris fra sør-sørvest</td> <td>6 m/s</td> </tr> <tr> <th></th> <th>18–24</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>1 mm</td> <td class="pluss">6°</td> <td class="v">Laber bris fra sørvest</td> <td>7 m/s</td> </tr> <tr> <td colspan="7" class="skilje"></td> </tr> <tr> <th>19.12.2008</th> <th>00–06</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/05d.png" width="38" height="38" alt="Regnbyger" /></td> <td><1 mm</td> <td class="pluss">5°</td> <td class="v">Laber bris fra sør-sørvest</td> <td>6 m/s</td> </tr> <tr> <th></th> <th>07–13</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/03d.png" width="38" height="38" alt="Delvis skyet" /></td> <td>0 mm</td> <td class="pluss">2°</td> <td class="v">Lett bris fra sør-sørvest</td> <td>4 m/s</td> </tr> <tr> <th></th> <th>13–19</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/02d.png" width="38" height="38" alt="Lettskyet" /></td> <td>0 mm</td> <td class="pluss">3°</td> <td class="v">Lett bris fra sør-sørvest</td> <td>4 m/s</td> </tr> <tr> <th></th> <th>19–01</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/04.png" width="38" height="38" alt="Skyet" /></td> <td>0 mm</td> <td class="pluss">2°</td> <td class="v">Lett bris fra sør-sørvest</td> <td>4 m/s</td> </tr> <tr> <td colspan="7" class="skilje"></td> </tr> <tr> <th>20.12.2008</th> <th>01–07</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/12.png" width="38" height="38" alt="Sludd" /></td> <td><1 mm</td> <td class="minus">-1°</td> <td class="v">Svak vind fra sørøst</td> <td>3 m/s</td> </tr> <tr> <th></th> <th>07–13</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>3 mm</td> <td class="pluss">1°</td> <td class="v">Lett bris fra sørøst</td> <td>4 m/s</td> </tr> <tr> <th></th> <th>13–19</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/10.png" width="38" height="38" alt="Kraftig regn" /></td> <td>12 mm</td> <td class="pluss">5°</td> <td class="v">Laber bris fra sørvest</td> <td>8 m/s</td> </tr> <tr> <th></th> <th>19–01</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>6 mm</td> <td class="pluss">3°</td> <td class="v">Lett bris fra vest</td> <td>4 m/s</td> </tr> <tr> <td colspan="7" class="skilje"></td> </tr> <tr> <th>21.12.2008</th> <th>01–07</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/13.png" width="38" height="38" alt="Snø" /></td> <td>3 mm</td> <td class="pluss">3°</td> <td class="v">Lett bris fra vest</td> <td>4 m/s</td> </tr> <tr> <th></th> <th>07–13</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/13.png" width="38" height="38" alt="Snø" /></td> <td><1 mm</td> <td class="minus">-1°</td> <td class="v">Svak vind fra sør-sørvest</td> <td>3 m/s</td> </tr> <tr> <th></th> <th>13–19</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/10.png" width="38" height="38" alt="Kraftig regn" /></td> <td>4 mm</td> <td class="minus">-1°</td> <td class="v">Lett bris fra sørøst</td> <td>4 m/s</td> </tr> <tr> <th></th> <th>19–01</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/09.png" width="38" height="38" alt="Regn" /></td> <td>1 mm</td> <td class="pluss">4°</td> <td class="v">Laber bris fra sørvest</td> <td>6 m/s</td> </tr> <tr> <td colspan="7" class="skilje"></td> </tr> <tr> <th>22.12.2008</th> <th>13–19</th> <td><img src="http://fil.nrk.no/yr/grafikk/sym/b38/10.png" width="38" height="38" alt="Kraftig regn" /></td> <td>7 mm</td> <td class="pluss">4°</td> <td class="v">Laber bris fra vest</td> <td>6 m/s</td> </tr> <tr> <td colspan="7" class="skilje"></td> </tr> </tbody> </table> <p>Værsymbolet og nedbørsvarselet gjelder for hele perioden, temperatur- og vindvarselet er for det første tidspunktet. <1 mm betyr at det vil komme mellom 0,1 og 0,9 mm nedbør.<br /> <a href="http://www.yr.no/1.3362862" target="_top">Slik forstår du varslene fra yr.no</a>.</p> </div> Og her er selve siden når yrscriptet har kjørt seg inn i den og bråstoppet: http://foniks.bluescape.org/site/blue_skies Lenke til kommentar
KeYhOle Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 (endret) kan det ha med at serveren ikke har støtte for PHP 5.0? Jeg måtte skru på dette på min server. Jeg bruker nå php opp imot xml, funker utmerket, men endel mer "dilling" for å få det slik man vil. HER har jeg gjort det samme som du har gjort HER har jeg brukt varsel.xml og brukt php for å hente infoen(Testside). Endret 18. desember 2008 av KeYhOle Lenke til kommentar
Twinflower Skrevet 18. desember 2008 Del Skrevet 18. desember 2008 (endret) kan det ha med at serveren ikke har støtte for PHP 5.0?Jeg måtte skru på dette på min server. Jeg bruker nå php opp imot xml, funker utmerket, men endel mer "dilling" for å få det slik man vil. HER har jeg gjort det samme som du har gjort HER har jeg brukt varsel.xml og brukt php for å hente infoen(Testside). Jeg tenkte å gå over til XML selv, og din løsning var godt på vei noe slikt jeg kunne tenke å ha i margen min. Lager en fallskjermklubbside skjønner du, og vær og vind er ganske essensielt edit: Sjekket PHP-løsningen din også, den var også slik jeg så for meg i min layout (tenkte å ha en link fra det lille varselet i margen over til en ny side med full oversikt). Sjekket også phpinfo, og versjon 5.2.4 er installert. Har du noe kildekode jeg kunne fått studert? Endret 18. desember 2008 av Twinflower Lenke til kommentar
KeYhOle Skrevet 19. desember 2008 Del Skrevet 19. desember 2008 (endret) Her er noe du kan bruke for å ha værvarsel i margen: <?php // Gjøre om url til fil (bruk ditt steds varsel.xml) $file = "http://www.yr.no/sted/Norge/Vest-Agder/S%F8gne/Tangvall/varsel.xml"; if($content = file_get_contents( $file )) { // kjør script $content = file_get_contents( $file ); $xml = simplexml_load_string( $content ); //dette er for å skrive stedsnavn echo "Location: " . $xml->location->name; echo ", timezone:" . $xml->location->timezone["id"] . "<br />"; //dette er for å få temperaturen echo $xml->forecast->tabular->time[0]->temperature['value']. " °C.<br>"; //dette er for å finne det riktige symbolet. Du må lagde bilde 01.png-16.png fra yr.no(http://www.yr.no/om_yrno/1.1940495). Kall de for 1.png-16.png og legg dem i grafics/yr echo '<img src="/grafics/yr/'.$xml->forecast->tabular->time[0]->symbol['number'].'.png" />' ."<br>"; } ?> Det andre er bare noe jeg henta fra yr.no <?php // ##### 1: VARIABLER FOR VARSEL - DETTE ENDRER DU ETTER ØNSKET STED #### // Lenke til stedet på yr.no (Uten siste skråstrek. Bruk vanlig æøå i lenka ) $yr_url='http://www.yr.no/sted/Norge/Vest-Agder/Søgne/Tangvall'; // Stedsnavnet (Skriv inn navnet på stedet) $yr_name='Bakke Elektro Søgne'; // Mellomlagringstid i sekunder før nytt varsel hentes fra yr.no. Eks: 600 = 10 minutter $yr_maxage=600; // ##### 2: VARIABEL FOR SERVEREN - MÅ ENDRES I NOEN TILFELLER #### $yr_meth=1; /* OBS: Sannsynligvis vil du kunne bruke yr-skriptet uten endringer. Men hvis du istedet for værvarsel får en feilmelding som begynner med: 'Warning: fopen(): URL file-access...', forsøk å endre $yr_meth til 0. */ // ##### 3: GRUNNLEGGENDE VARIABLER - BEHØVER IKKE ENDRES ##### $yr_showerrors=0; // Sett til 1 hvis du vil ha feilmeldinger. greit ved feilsøking $getextheadfoot=1; /* Du kan hente header/css/footer-kode fra en publiseringsløsning. Hvis du skal IKKE bruke skriptet frittstående, kod inn din egen header/footer, og sett denne variablen til 1. */ $getlocalheadfoot=0; /* Hvis du vil bruke standard-header/footer i denne filen, sett denne til 1. */ $yr_winddirs=array('nord', 'nord-nordøst', 'nordøst', 'øst-nordøst', 'øst', 'øst-sørøst', 'sørøst', 'sør-sørøst', 'sør', 'sør-sørvest', 'sørvest', 'vest-sørvest', 'vest', 'vest-nordvest', 'nordvest', 'nord-nordvest', 'nord'); // Norsk grovinndeling av de 360 grader vindretning $datadir='data'; if(!is_dir($datadir)) mkdir($datadir,0770); $clean_datadir = false; // Vil du slette data-katalogen av en eller annen grunn? // fjern // foran neste linje (altså sett clean_datadir=true): //$clean_datadir = true; // ************************************************ // ENDRE INGENTING NEDENFOR HER HVIS DU ER UERFAREN. // ####################### FUNKSJONER ########################## class yr_ParseXML{ function yr_GetChildren($vals, &$i) { $children = array(); // Contains node data if (isset($vals[$i]['value']))$children['VALUE'] = $vals[$i]['value']; while (++$i < count($vals)){ switch ($vals[$i]['type']){ case 'cdata': if (isset($children['VALUE']))$children['VALUE'] .= $vals[$i]['value']; else $children['VALUE'] = $vals[$i]['value']; break; case 'complete': if (isset($vals[$i]['attributes'])) { $children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes']; $index = count($children[$vals[$i]['tag']])-1; if (isset($vals[$i]['value']))$children[$vals[$i]['tag']][$index]['VALUE'] = $vals[$i]['value']; else $children[$vals[$i]['tag']][$index]['VALUE'] = ''; } else { if (isset($vals[$i]['value']))$children[$vals[$i]['tag']][]['VALUE'] = $vals[$i]['value']; else $children[$vals[$i]['tag']][]['VALUE'] = ''; } break; case 'open': if (isset($vals[$i]['attributes'])) { $children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes']; $index = count($children[$vals[$i]['tag']])-1; $children[$vals[$i]['tag']][$index] = array_merge($children[$vals[$i]['tag']][$index],$this->yr_GetChildren($vals, $i)); } else $children[$vals[$i]['tag']][] = $this->yr_GetChildren($vals, $i); break; case 'close': return $children; } } } function yr_GetXMLTree($xmlloc, $max_age, $yr_meth){ $yr_cached = "data/yrrss.txt"; $yr_getnew=1; if(file_exists($yr_cached)){ $currenttime=time(); $mod_time=filemtime($yr_cached); if(($currenttime-$mod_time)<$max_age)$yr_getnew=0; } if(!$yr_getnew)$data = implode('', file($yr_cached)); else{ $xmlloc.="/varsel.xml"; // fopen or curl? if($yr_meth)$fp = fopen($xmlloc, 'r'); else{ $ch = curl_init($xmlloc); $fp = @fopen("data/temp.xml", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); fclose($fp); $file = "data/temp.xml"; $fp = fopen($file, "r"); } $data=''; while(!feof($fp))$data = $data . fread($fp, 1024); fclose($fp); $fh = fopen($yr_cached, 'w') or die("can't open file"); fwrite($fh, $data); fclose($fh); } $parser = xml_parser_create('ISO-8859-1'); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $vals, $index); xml_parser_free($parser); $tree = array(); $i = 0; if (isset($vals[$i]['attributes'])) { $tree[$vals[$i]['tag']][]['ATTRIBUTES']=$vals[$i]['attributes']; $index=count($tree[$vals[$i]['tag']])-1; $tree[$vals[$i]['tag']][$index]=array_merge($tree[$vals[$i]['tag']][$index], $this->yr_GetChildren($vals, $i)); } else $tree[$vals[$i]['tag']][] = $this->yr_GetChildren($vals, $i); return $tree; } } function yr_convert_encoding($yrraw, $yrtype=0){ if(!$yrtype){ $conv=str_replace("æ", "æ", $yrraw); $conv=str_replace("ø", "ø", $conv); $conv=str_replace("Ã¥", "å", $conv); $conv=str_replace("Æ", "Æ", $conv); $conv=str_replace("Ø", "Ø", $conv); $conv=str_replace("Ã…", "Å", $conv); }else{ $conv=str_replace("æ", "æ", $yrraw); $conv=str_replace("ø", "ø", $conv); $conv=str_replace("å", "å", $conv); $conv=str_replace("Æ", "Æ", $conv); $conv=str_replace("Ø", "Ø", $conv); $conv=str_replace("Å", "Å", $conv); } return $conv; } function yr_parsetime($yr_time, $do24_00=0){ $yr_time=str_replace(":00:00", "", $yr_time); if($do24_00)$yr_time=str_replace("00", "24", $yr_time); return $yr_time; } // ##################### SKRIPTET KJØRER ############################# if($yr_showerrors)error_reporting(E_ALL); $yr_run=1; if(!$yr_meth){// check for curl, if not present, die. if(!function_exists(curl_init))$yr_run=0; } if($getextheadfoot){ // external header // f eks: include 'header.php'; } // external header end elseif($getlocalheadfoot){ // local header echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"" ." \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n" ."<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n" ."<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n" ."<title>Værvarsel fra yr.no</title>\n\n" ."<link href=\"http://www12.nrk.no/yr.no/yr-php.css\" rel=\"stylesheet\" type=\"text/css\" />\n" ."</head>\n<body>\n"; } // local header end // så begynner vi å hente/behandle varsel, HVIS serveren støtter det. if($yr_run){ $yr_name=yr_convert_encoding($yr_name); $yr_xmlparse = &new yr_ParseXML; $yr_xml = $yr_xmlparse->yr_GetXMLTree($yr_url, $yr_maxage, $yr_meth); $yr_xml_sub=$yr_xml['WEATHERDATA'][0]['FORECAST'][0]; // headerfelt // Du må ta med teksten nedenfor og ha med lenke til yr.no. // Om du fjerner denne teksten og lenkene, bryter du vilkårene for bruk av data fra yr.no. // Det er straffbart å bruke data fra yr.no i strid med vilkårene. // Du finner vilkårene på [url="http://www.yr.no/verdata/1.3316805"]http://www.yr.no/verdata/1.3316805[/url] $yrrss_acc="<div id=\"yr-varsel\">\n\n" ."<h1><a href=\"http://www.yr.no/\" target=\"_top\">" ."<img src=\"images/topp.png\" alt=\"yr.no\" title=\"yr.no er en tjeneste fra Meteorologisk institutt og NRK\" />" ."</a></h1>\n" ."<h2><a href=\"".$yr_url."/\" target=\"_top\">Værvarsel for ".$yr_name."</a></h2>\n" ."<p><a href=\"http://www.yr.no/\" target=\"_top\"><strong>Værvarsel fra yr.no, levert av Meteorologisk institutt og NRK.</strong></a></p>\n"; // tekstvær if(isset($yr_xml_sub['TEXT'])){ $yr_place=$yr_xml_sub['TEXT'][0]['LOCATION'][0]['ATTRIBUTES']['NAME']; foreach($yr_xml_sub['TEXT'][0]['LOCATION'][0]['TIME'] as $yr_var2){ $yrrss_acc.="<p><strong>".$yr_place." ".strtolower(yr_convert_encoding($yr_var2['TITLE'][0]['VALUE']))."</strong>: " // UKEDAGER .yr_convert_encoding($yr_var2['BODY'][0]['VALUE'])."</p>\n"; // VÆRMELDING } } // lenker til andre varsel $yrrss_acc.="<p class=\"yr-lenker\" target=\"_top\">".$yr_name." på yr.no:\n" ."<a href=\"".$yr_url."/\" target=\"_top\">Varsel med kart</a>\n" ."<a href=\"".$yr_url."/time_for_time.html\" target=\"_top\">Time for time</a>\n" ."<a href=\"".$yr_url."/helg.html\" target=\"_top\">Helg</a>\n" ."<a href=\"".$yr_url."/langtidsvarsel.html\" target=\"_top\">Langtidsvarsel</a>\n</p>\n" // kolonnetitler ."\n<table summary=\"Værvarsel for ".$yr_name." fra yr.no\">\n<thead>\n<tr>\n" ."<th class=\"v\" colspan=\"3\"><strong>Varsel for ".$yr_name."</strong></th>\n" ."<th>Nedbør</th>\n<th>Temp.</th>\n<th class=\"v\">Vind</th>\n<th>Vindstyrke</th>\n" ."</tr>\n</thead>\n<tbody>\n"; // så legges dataene ut i ruter. html lagres i variablen $yrrss_acc $thisdate=''; $dayctr=0; foreach($yr_xml_sub['TABULAR'][0]['TIME'] as $yr_var3){ list($fromdate, $fromtime)=explode('T', $yr_var3['ATTRIBUTES']['FROM']); list($todate, $totime)=explode('T', $yr_var3['ATTRIBUTES']['TO']); $fromtime=yr_parsetime($fromtime); $totime=yr_parsetime($totime, 1); if($fromdate!=$thisdate){ $divider="<tr>\n<td colspan=\"7\" class=\"skilje\"></td>\n</tr>\n"; list($thisyear, $thismonth, $thisdate)=explode('-', $fromdate); $displaydate=$thisdate.".".$thismonth.".".$thisyear; $firstcellcont=$displaydate; $thisdate=$fromdate; ++$dayctr; }else $divider=$firstcellcont=''; // change date display if($dayctr<7){ $yrrss_acc.=$divider; // behandle symbol $imgno=$yr_var3['SYMBOL'][0]['ATTRIBUTES']['NUMBER']; if($imgno<10)$imgno='0'.$imgno; switch($imgno){ case '01': case '02': case '03': case '05': case '06': case '07': case '08': $imgno.="d"; $do_daynight=1; break; default: $do_daynight=0; } // behandle regn $rain=$yr_var3['PRECIPITATION'][0]['ATTRIBUTES']['VALUE']; if($rain==0.0)$rain="0"; else{ $rain=intval($rain); if($rain<1)$rain='<1'; else $rain=round($rain); } $rain.=" mm"; // behandle vind $winddir=round($yr_var3['WINDDIRECTION'][0]['ATTRIBUTES']['DEG']/22.5); $winddirtext=$yr_winddirs[$winddir]; // behandle temperatur $temper=round($yr_var3['TEMPERATURE'][0]['ATTRIBUTES']['VALUE']); if($temper>=0)$tempclass='pluss'; else $tempclass='minus'; // så legger vi ut hele den ferdige linjen $yrrss_acc.="<tr>\n<th>".$firstcellcont."</th>\n" ."<th>".$fromtime."–".$totime."</th>\n" // start/sluttid ."<td><img src=\"images/".$imgno.".png\" width=\"38\" height=\"38\" alt=\"".$yr_var3['SYMBOL'][0]['ATTRIBUTES']['NAME']."\" /></td>\n" // symbol ."<td>".$rain."</td>\n" // nedbør ."<td class=\"".$tempclass."\">".$temper."°</td>\n" // temperatur ."<td class=\"v\">".$yr_var3['WINDSPEED'][0]['ATTRIBUTES']['NAME']." fra ".$winddirtext."</td>\n" // vindtype ."<td>".round($yr_var3['WINDSPEED'][0]['ATTRIBUTES']['MPS'])." m/s" // vindhastighet, ms ."</td>\n</tr>\n"; } } $yrrss_acc.="<tr>\n<td colspan=\"7\" class=\"skilje\"></td>\n</tr>\n</tbody>\n</table>\n" ."<p>Værsymbolet og nedbørsvarselet gjelder for hele perioden, temperatur- og vindvarselet er for det første tidspunktet. <1 mm betyr at det vil komme mellom 0,1 og 0,9 mm nedbør.<br />" ."<a href=\"http://www.yr.no/1.3362862\" target=\"_top\">Slik forstår du varslene fra yr.no</a>.</p>\n" ."<p>Vil du også ha <a href=\"http://www.yr.no/verdata/\" target=\"_top\">værvarsel fra yr.no på dine nettsider</a>?</p>\n" ."</div>\n"; }else $yrrss_acc='Vi beklager, men PHP-varselet fra yr ser ikke ut til å fungere på denne serveren.'; $yrrss_acc=yr_convert_encoding($yrrss_acc, 1); echo $yrrss_acc; // $yrrss_acc echoes ut if($getextheadfoot){ // external footer // f eks: include 'footer.php'; } // local footer end elseif($getlocalheadfoot) // local footer echo "</body>\n</html>"; // local footer end // Sjekk om katalogen skal fjernes eller ei: if ($clean_datadir) { unlink($datadir . '/yrrss.txt'); rmdir($datadir); } ?> Endret 19. desember 2008 av KeYhOle Lenke til kommentar
Twinflower Skrevet 19. desember 2008 Del Skrevet 19. desember 2008 Her er noe du kan bruke for å ha værvarsel i margen: Det andre er bare noe jeg henta fra yr.no Tusen takk Forrige gang jeg prøvde å kjøre yr-scriptet, så forsvant all HTML under det yr.php outputtet, selv om jeg tok av headers og footers. Rare saker, men skal prøve med ditt og se om det er annerledes på en måte. Takk igjen Lenke til kommentar
flyKSU Skrevet 19. mars 2009 Del Skrevet 19. mars 2009 (endret) EDIT: Fikk det til. Men hvordan fjerner jeg "Timezone: Europe/Oslo" ? www.kvernberget.net/index-test.php Endret 20. mars 2009 av flyKSU Lenke til kommentar
flyKSU Skrevet 22. mars 2009 Del Skrevet 22. mars 2009 (endret) Jeg har litt problemer med denne delen: //dette er for å få temperaturen echo $xml->forecast->tabular->time[0]->temperature['value']. " °C.<br>"; Jeg regner med "time[0]" bør endres etter hvilken tid varselet skal være for. Jeg forsøker å lage en oversikt over været nå, i morgen og i overimorgen for Kristiansund lufthavn. Mitt forsøk her: http://www.kvernberget.net/ver.php Problemet er at det ikke stemmer over ens helt med yr sitt langtidsvarsel. Her er koden jeg bruker: <table border="0" cellspacing="0" width="425" bgcolor="#F8F8F8"> <tr> <td><div align="center">I dag<br /> <?php // Gjøre om url til fil (bruk ditt steds varsel.xml) $file = "http://www.yr.no/sted/Norge/M%C3%B8re_og_Romsdal/Kristiansund/Kristiansund_lufthavn,_Kvernberget/varsel.xml"; if($content = file_get_contents( $file )) { // kjør script $content = file_get_contents( $file ); $xml = simplexml_load_string( $content ); //dette er for å finne det riktige symbolet. Du må lagde bilde 01.png-16.png fra yr.no(http://www.yr.no/om_yrno/1.1940495). Kall de for 1.png-16.png og legg dem i grafics/yr echo '<img src="/grafics/yr/'.$xml->forecast->tabular->time[0]->symbol['number'].'.png" />' ."<br>"; //dette er for å skrive stedsnavn echo "" . $xml->location; $xml->location["id"] . "<br />"; //dette er for å få temperaturen echo $xml->forecast->tabular->time[0]->temperature['value']. " °C<br>"; } ?> </div></td> <td><div align="center">I morgen<br /> <?php // Gjøre om url til fil (bruk ditt steds varsel.xml) $file = "http://www.yr.no/place/Norway/M%C3%B8re_og_Romsdal/Kristiansund/Kristiansund_lufthavn,_Kvernberget/forecast.xml"; if($content = file_get_contents( $file )) { // kjør script $content = file_get_contents( $file ); $xml = simplexml_load_string( $content ); //dette er for å finne det riktige symbolet. Du må lagde bilde 01.png-16.png fra yr.no(http://www.yr.no/om_yrno/1.1940495). Kall de for 1.png-16.png og legg dem i grafics/yr echo '<img src="/grafics/yr/'.$xml->forecast->tabular->time[6]->symbol['number'].'.png" />' ."<br>"; //dette er for å skrive stedsnavn echo "" . $xml->location; $xml->location["id"] . "<br />"; //dette er for å få temperaturen echo $xml->forecast->tabular->time[6]->temperature['value']. " °C<br>"; } ?> </div></td> <td><div align="center">I overimorgen<br /> <?php // Gjøre om url til fil (bruk ditt steds varsel.xml) $file = "http://www.yr.no/place/Norway/M%C3%B8re_og_Romsdal/Kristiansund/Kristiansund_lufthavn,_Kvernberget/forecast.xml"; if($content = file_get_contents( $file )) { // kjør script $content = file_get_contents( $file ); $xml = simplexml_load_string( $content ); //dette er for å finne det riktige symbolet. Du må lagde bilde 01.png-16.png fra yr.no(http://www.yr.no/om_yrno/1.1940495). Kall de for 1.png-16.png og legg dem i grafics/yr echo '<img src="/grafics/yr/'.$xml->forecast->tabular->time[10]->symbol['number'].'.png" />' ."<br>"; //dette er for å skrive stedsnavn echo "" . $xml->location; $xml->location["id"] . "<br />"; //dette er for å få temperaturen echo $xml->forecast->tabular->time[10]->temperature['value']. " °C<br>"; } ?> </div></td> </tr> </table> Her er xml-fila: http://www.yr.no/sted/Norge/M%C3%B8re_og_R...rget/varsel.xml Endret 22. mars 2009 av flyKSU Lenke til kommentar
KeYhOle Skrevet 23. april 2009 Del Skrevet 23. april 2009 Har ikke helt skjønt hvordan varselet til yr stemmer med de [time]'ene nei. Fine værlogoer du hadde btw:P Lenke til kommentar
HKRoed Skrevet 28. juni 2009 Del Skrevet 28. juni 2009 Noen som har tips til ett skript som kan sende ett e-post varsel hvis det feks blir torden?? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå