Avatar billede Slettet bruger
30. oktober 2011 - 16:27 Der er 11 kommentarer og
1 løsning

Google weather API assistance

Hej med jer.
Jeg har lavet dette her script som viser vejret i 4 dage.
Jeg kan simpelthen ikke få den til at vise det på dansk, hvilket jeg har kunne med nogle andre scripts.
Nogle der kender til det som kan hjælpe så det bliver dansk sprog og danske grader?

<table>
<tr>
<td>
<?php
/*
Nutzung dieses Scripts nur gestattet, wenn Kommentare in PHP nicht entfernt werden oder ein Link zu folgender Adresse gesetzt wird:
URL: http://www.web-spirit.de/webdesign-tutorial/9/Wetter-auf-eigener-Website-mit-Google-Weahter-API
Beschreibung: Wettervorhersage auf der eigenen Website mit Zugriff auf die Google Weather API
Autor: Sebastian Gollus
Internet: http://www.web-spirit.de
Version: 1.0.201106
*/

// Funktionsaufruf z.B.: $wetter = website_wetter("46562", "Germany", "/images/wetter/icons/", "de");

$place = 'Varde'; // city where you want local weather 
$lang = 2;
$url = 'http://www.google.dk/ig/api?weather=varde'; 

function website_wetter($plz, $land, $icons_src="/", $ort="")
{
    $icons_google = "/ig/images/weather/"; //alte Google-Version
    //$icons_google = "http://g0.gstatic.com/images/icons/onebox/"; //neue Google-Version (bzw. zwischenzeitlich geändert)
   
    if($ort != "")
    {
        $station = $ort;
    }
    else
    {
        $station = $plz."-".$land;
    }
   
    $api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=varde")));
   
    $wetter = array();
   
    // Allgemeine Informationen
    $wetter['stadt'] = $api->weather->forecast_information->city->attributes()->data;
    $wetter['datum'] = $api->weather->forecast_information->forecast_date->attributes()->data;
    $wetter['zeit'] = $api->weather->forecast_information->current_date_time->attributes()->data;
   
    // Aktuelles Wetter
    $wetter[0]['zustand'] = $api->weather->current_conditions->condition->attributes()->data;
    $wetter[0]['temperatur'] = $api->weather->current_conditions->temp_c->attributes()->data;
    $wetter[0]['luftfeuchtigkeit'] = $api->weather->current_conditions->humidity->attributes()->data;
    $wetter[0]['wind'] = $api->weather->current_conditions->wind_condition->attributes()->data;
    $wetter[0]['icon'] = str_replace($icons_google, $icons_src, $api->weather->current_conditions->icon->attributes()->data);
   
    // Wettervorhersage heute, morgen, in zwei und in drei Tagen ($wetter[1] bis $wetter[4])
    $i = 1;
    foreach($api->weather->forecast_conditions as $weather)
    {
        $wetter[$i]['wochentag'] = $weather->day_of_week->attributes()->data;
        $wetter[$i]['zustand'] = $weather->condition->attributes()->data;
        $wetter[$i]['tiefsttemperatur'] = $weather->low->attributes()->data;
        $wetter[$i]['hoechsttemperatur'] = $weather->high->attributes()->data;
        $wetter[$i]['icon'] = str_replace($icons_google, $icons_src, $weather->icon->attributes()->data);
   
        $i++;
    }
   
    return $wetter;
}

// Funktionsaufruf in Array
$wetter = website_wetter("Varde", "Denmark");

?>
<table>
<tr>
<td>
<?php

if ($wetter[$i]['wochentag']  == "man") {
            $wetter[$i]['wochentag'] = "Mandag";
        }
   
    if ($wetter[$i]['wochentag']  == "Tue") {
            $wetter[$i]['wochentag'] = "Tirsdag";
        }
   
    if ($day_of_week == "Wed") {
            $day_of_week = "Onsdag";
        }
   
    if ($day_of_week == "tor") {
            $day_of_week = "Torsdag";
        }
   
      if ($day_of_week == "fre") {
            $day_of_week = "Fredag";
        }
   
      if ($day_of_week == "lor") {
            $day_of_week = "Lørdag";
        }
   
      if ($day_of_week == "son") {
            $day_of_week = "Søndag";
        }







?>
</td>
<td>
<?php
echo "<p>";
echo "<strong>".$wetter[1]['wochentag']."</strong><br/>
";
echo $wetter[1]['zustand']."<br/>
";
echo "min. ".$wetter[1]['tiefsttemperatur']."&deg; C | max. ".$wetter[1]['hoechsttemperatur']."&deg; C<br/>
";
echo "<img src=\"http://www.skala.fm/ig/images/weather".$wetter[1]['icon']."\" alt=\"".$wetter[1]['zustand']."\" />
";
echo "</p>";
?>
</td>
<td>
<?php
echo "<p>";
echo "<strong>".$wetter[2]['wochentag']."</strong><br/>
";
echo $wetter[2]['zustand']."<br/>
";
echo "min. ".$wetter[2]['tiefsttemperatur']."&deg; C | max. ".$wetter[2]['hoechsttemperatur']."&deg; C<br/>
";
echo "<img src=\"http://www.skala.fm/ig/images/weather".$wetter[2]['icon']."\" alt=\"".$wetter[2]['zustand']."\" />
";
echo "</p>";
?>
</td>
<td>
<?php
echo "<p>";
echo "<strong>".$wetter[3]['wochentag']."</strong><br/>
";
echo $wetter[3]['zustand']."<br/>
";
echo "min. ".$wetter[3]['tiefsttemperatur']."&deg; C | max. ".$wetter[3]['hoechsttemperatur']."&deg; C<br/>
";
echo "<img src=\"http://www.skala.fm/ig/images/weather".$wetter[3]['icon']."\" alt=\"".$wetter[3]['zustand']."\" />
";
echo "</p>";
?>
</td>
<td>
<?php
echo "<p>";
echo "<strong>".$wetter[4]['wochentag']."</strong><br/>
";
echo $wetter[4]['zustand']."<br/>
";
echo "min. ".$wetter[4]['tiefsttemperatur']."&deg; C | max. ".$wetter[4]['hoechsttemperatur']."&deg; C<br/>
";
echo "<img src=\"http://www.skala.fm/ig/images/weather".$wetter[4]['icon']."\" alt=\"".$wetter[4]['zustand']."\" />
";
echo "</p>";
?>
</td>
</tr>
</table>
Avatar billede olebole Juniormester
30. oktober 2011 - 16:39 #1
<ole>

Hvordan ser den kode ud, du faktisk bruger? Den, du skriver, virker ikke

/mvh
</bole>
Avatar billede olebole Juniormester
30. oktober 2011 - 16:46 #2
Anyway, så skal du ifølge kilden (den tyske side) angive sproget, når du kalder Googles API:


$api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=varde&hl=da")));

Avatar billede olebole Juniormester
30. oktober 2011 - 16:47 #3
Arrghh!


$api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=varde&hl=da")));

Avatar billede Slettet bruger
30. oktober 2011 - 16:53 #4
Har jeg prøvet, men virkede ikke.
Men fandt en anden løsning og byggede den forfra.
Men smid svar, fordi det var også rigtigt hvad du skrev, hvilket også er en del af det jeg har med i det nye script. :-)
Avatar billede olebole Juniormester
30. oktober 2011 - 17:16 #5
Jo, det virker helt efter opskriften  =)

Denne kode:


<?php
$xml = utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=varde&hl=da"));
$xml = str_replace("><", ">\r\n<", $xml);
$fp = fopen("wether.xml", "w");
fwrite($fp, $xml);
fclose($fp);
?>


- udskriver en fil, der ser sådan ud:


<?xml version="1.0"?>
<xml_api_reply version="1">
    <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" >
        <forecast_information>
            <city data="Varde, Syddanmark"/>
            <postal_code data="varde"/>
            <latitude_e6 data=""/>
            <longitude_e6 data=""/>
            <forecast_date data="2011-10-30"/>
            <current_date_time data="1970-01-01 00:00:00 +0000"/>
            <unit_system data="SI"/>
        </forecast_information>
        <current_conditions>
            <condition data="Mest skyet"/>
            <temp_f data="55"/>
            <temp_c data="13"/>
            <humidity data="Fugtighed: 94 %"/>
            <icon data="/ig/images/weather/mostly_cloudy.gif"/>
            <wind_condition data="Vind: SV og 5 m/s"/>
        </current_conditions>
        <forecast_conditions>
            <day_of_week data="søn"/>
            <low data="9"/>
            <high data="14"/>
            <icon data="/ig/images/weather/chance_of_rain.gif"/>
            <condition data="Risiko for regn"/>
        </forecast_conditions>
        <forecast_conditions>
            <day_of_week data="man"/>
            <low data="8"/>
            <high data="13"/>
            <icon data="/ig/images/weather/fog.gif"/>
            <condition data="Tåge"/>
        </forecast_conditions>
        <forecast_conditions>
            <day_of_week data="tir"/>
            <low data="6"/>
            <high data="13"/>
            <icon data="/ig/images/weather/mostly_sunny.gif"/>
            <condition data="Overvejende solskin"/>
        </forecast_conditions>
        <forecast_conditions>
            <day_of_week data="ons"/>
            <low data="8"/>
            <high data="13"/>
            <icon data="/ig/images/weather/fog.gif"/>
        <condition data="Tåge"/>
        </forecast_conditions>
    </weather>
</xml_api_reply>


Den kan du ikke hive ret meget tysk ud af  =)

Ellers tak, jeg samler ikke points. Læg selv et svar og accepter det, så tråden lukkes
Avatar billede olebole Juniormester
30. oktober 2011 - 17:18 #6
Doooooh ... og dette var koden:


<?php
$xml = utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=varde&hl=da"));
$xml = str_replace("><", ">\r\n<", $xml);
$fp = fopen("wether.xml", "w");
fwrite($fp, $xml);
fclose($fp);
?>

Avatar billede Slettet bruger
29. november 2011 - 11:34 #7
Det funker nu. :-)

Du kan se det her:
http://outrup.net.server84191742.internet-server.dk/

En side jeg er i gang med at lave.

Dog kan jeg ikke få den til at skrive Ø (lørdag), så der fucker den totalt. Har du en ide til hvor jeg får det fixet??

Kan evt. lige smide koden på det færdige script.
Avatar billede Slettet bruger
29. december 2011 - 10:53 #8
svar
Avatar billede Slettet bruger
29. december 2011 - 10:53 #9
Vil du have point Olebole, så skrev lige. :-)
Avatar billede olebole Juniormester
29. december 2011 - 14:44 #10
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes. Men det er da altid noget, hvis du er begyndt at tage dine åbne tråde alvorligt
Avatar billede Slettet bruger
29. december 2011 - 14:49 #11
Må jo hellere få gjort noet ved det... :-)
Avatar billede KFJ1972 Juniormester
06. maj 2012 - 16:08 #12
Prøv at udskift ø'et med &#248;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester