Wetter, Temperatur, usw. per php abrufen?!

Hallo Leuts

Habe das php-script auch am laufen und habe mich ja auch gewundert, warum es nicht mehr so ganz funktioniert.

Da ist mir der Gedanke gekommen: Deutsche Seite = deutsche Bezeichnungen
und seid dem gehts wieder.:)

also aus Temperature wird Temperatur, aus Wind direction wird Windrichtung usw.
(mehr brauchte ich ja erst mal nicht)

Da frage ich mich nur wieder, wer sich so einen Unfug ausdenkt.:confused:
 
Hallo Leuts

Hier mal ein Teil von meinem neuen script mit deutschen Bezeichnungen:

preg_match("/Temperatur: (.*?)F \/ (.*?)C/si", $arr[0], $str);
$wetter['temp'] = $str['2'];

preg_match("/Bedingungen: (.*)/si", $arr[3], $str);
$wetter['verh'] = $str['1'];

preg_match("/Windrichtung: (.*)/si", $arr[4], $str);
$wetter['windr'] = $str['1'];

preg_match("/Geschwindigkeit: (.*?)mph \/ (.*?)km\/h/si", $arr[5], $str);
$wetter['windg'] = $str['2'];

Die anderen deutschen Bezeichnungen sind jetzt ja kaum noch ein Problem.:)
 
hey, also bei mir funktioniert es noch nicht irgendwie!? Könnt ihr da kurz mal draufgucken? Ist, glaube ich, nur ein kleines Problem - finde es aber nicht:

PHP:
<?php

$url = "http://www.wunderground.com/auto/rss_full/global/stations/10513.xml"; 
$content = implode("", file($url)); 

preg_match_all("/\<item>(.*?)\<\/item\>/si", $content, $results); 
preg_match("/\<description\>(.*?)\<\/description\>/si", $results[1][0], $desc); 

$arr = explode(" | ",$desc[1]); 

preg_match("/Temperatur: (.*?)F \/ (.*?)C/si", $arr[0], $str);
$wetter['temp'] = $str['2'];

preg_match("/Bedingungen: (.*)/si", $arr[3], $str);
$wetter['verh'] = $str['1'];

preg_match("/Windrichtung: (.*)/si", $arr[4], $str);
$wetter['windr'] = $str['1'];

preg_match("/Geschwindigkeit: (.*?)mph \/ (.*?)km\/h/si", $arr[5], $str);
$wetter['windg'] = $str['2'];

switch($wetter['verh']) 
{ 
    case 'Partly Cloudy': 
        $wetter['verh'] = 'Teils wolkig'; 
    break; 
     
	 case 'Mostly Cloudy': 
        $wetter['verh'] = '&Uuml;berwiegend wolkig'; 
    break;
	 
// [..]
}

switch($wetter['windr']) 
{ 
	case 'North': 
        $wetter['windr'] = 'Norden'; 
    break; 
	
// [..]
}
?>

Vielen Dank schonmal für die Antworten!
 
hallo nordi

spontan würde ich mal sagen deine url
ich habe die aus dem weiter oben befindlichen originalscript:

//Wetter in Hamburg - Fuhlsbüttel
$url = "http://deutsch.wunderground.com/auto/rss_full/global/stations/10147.xml";
$content = implode("", file($url));


übrigens sind die "bedingungen" jetzt auch deutsch, windrichtung aber nachwievor english.
 
So, ich habe noch mal ein wenig rumprobiert.

Verwendet man die deutsche url, z.B für Hamburg-Fuhlsbüttel

$url = "http://deutsch.wunderground.com/auto/rss_full/global/stations/10147.xml";

oder für Köln (10513.xml) das hier

$url = "http://deutsch.wunderground.com/auto/rss_full/global/stations/10513.xml";

nimmt man nach preg_match... deutsche Bezeichnungen , als Beispiel

preg_match("/Bedingungen: (.*)/si", $arr[3], $str);



Verwendet man die englische url, dementsprechend sollte es dann so lauten:

$url = "http://wunderground.com/auto/rss_full/global/stations/10147.xml";

preg_match("/conditions: (.*)/si", $arr[3], $str);


Das Anfangsproblem lag also bei der anderen url.
Hoffe, das dies weiterhilft.
 
Hallo zusammen,

zuerst einmal ein fettes SORRY, dass ich diesen alten Thread wieder ausgrabe. Aber Freund Google hat mich hierher geführt und ich bin mit dieser Lösung absolut zufrieden und bedanke mich schon einmal für eure Hilfe.

Mir schwebt vor, zu den einzelnen Wetterbedingungen ein Wettericon anzeigen zu lassen, was die aktuelle Bedingungen anzeigt. Ich bin noch nicht so fit, was PHP betrifft und würde mich riesig freuen, wenn einer eine Lösung dazu hat.

Reisst mir bitte nicht den Kopf ab. Ich würde gerne diesen Code mit euch weiterentwickeln. Ich finde es ist eine leicht verständliche Lösung, die wohl super fortgeführt bzw. ausgebaut werden kann.

Mein Code sieht derzeit so aus:

PHP:
<?php
//Wetter in Waldfeucht
$url = "http://rss.wunderground.com/auto/rss_full/global/stations/10500.xml"; 
$content = implode("", file($url)); 

preg_match_all("/\<item>(.*?)\<\/item\>/si", $content, $results); 
preg_match("/\<description\>(.*?)\<\/description\>/si", $results[1][0], $desc); 

$arr = explode(" | ",$desc[1]); 

/* 
 * echo '<pre>' . print_r($arr, true) . '</pre>'; 
 *  
 * Array 
 * ( 
 *     [0] => Temperature: 86°F / 30°C 
 *     [1] => Humidity: 74% 
 *     [2] => Pressure: 29.83in / 1010hPa 
 *     [3] => Conditions: Partly Cloudy 
 *     [4] => Wind Direction: ESE 
 *     [5] => Wind Speed: 5mph / 7km/h 
 *     [6] => Updated: 10:00 PM PHT 
 * ) 
 */ 
//Temperatur  
preg_match("/Temperature: (.*?)F \/ (.*?)C/si", $arr[0], $str);
$wetter['temp'] = $str['2'];
 

//Wetterbedingung
preg_match("/Conditions: (.*)/si", $arr[3], $str);
$wetter['verh'] = $str['1'];

//Übersetze Wetterbedingung ins Deutsche
switch($wetter['verh'])  
{  
    case 'Partly Cloudy':  
        $wetter['verh'] = 'Teils wolkig';  
    break;  
      
     case 'Mostly Cloudy':  
        $wetter['verh'] = '&Uuml;berwiegend wolkig';  
    break; 
      
    case 'Scattered Clouds':  
        $wetter['verh'] = 'Teils wolkig';  
    break;  
      
    case 'Overcast':  
        $wetter['verh'] = 'Bew&ouml;lkt';  
    break;  
     
    case 'Clear':  
        $wetter['verh'] = 'Heiter';  
    break;  
      
     case 'Fog':  
        $wetter['verh'] = 'Nebel';  
    break;  
      
     case 'Heavy Fog':  
        $wetter['verh'] = 'Starker Nebel';  
    break;  
      
     case 'Light Fog':  
        $wetter['verh'] = 'Leicher Nebel';  
    break;  
     
    case 'Thunderstorm':  
        $wetter['verh'] = 'Gewitter';  
    break;  
     
    case 'Light Thunderstorm':  
        $wetter['verh'] = 'Leichte Gewitter';  
    break;  
     
    case 'Heavy Thunderstorm':  
        $wetter['verh'] = 'Starke Gewitter';  
    break;  
      
     case 'Thunderstorms and Rain':  
        $wetter['verh'] = 'Gewitter mit Regen';  
    break;  
      
     case 'Light Thunderstorms and Rain':  
        $wetter['verh'] = 'Leichte Gewitter mit Regen';  
    break;  
      
     case 'Light Rain Showers':  
        $wetter['verh'] = 'Leichte Regenschauer';  
    break;  
     
     case 'Heavy Rain Showers':  
        $wetter['verh'] = 'Starke Regenschauer';  
    break;  
     
     case 'Light Rain':  
        $wetter['verh'] = 'Leichter Regen';  
    break;  
     
     case 'Haze':  
        $wetter['verh'] = 'Tr&uuml;be';  
    break;  
      
      case 'Patches of Fog':  
        $wetter['verh'] = 'Nebelfelder';  
    break;  
     
      case 'Unknown Percipitation':  
        $wetter['verh'] = 'Ung. Niederschl&auml;ge';  
    break;  
     
    case 'Light Drizzle':  
        $wetter['verh'] = 'Leichter Spr&uuml;hregen';  
    break;  
     
    case 'Mist':  
        $wetter['verh'] = 'Leicher Nebel';  
    break; 
     
    case 'Light Rain Mist':  
        $wetter['verh'] = 'Leicher Nebel';  
    break; 
      
    default:  
        $wetter['verh'] = $wetter['verh'];  
    break;   
}  

//Luftfeuchtigkeit
preg_match("/Humidity: (.*)/si", $arr[1], $str);
$wetter['feuchte'] = $str['1'];

 
//Windrichtung
preg_match("/Wind Direction: (.*)/si", $arr[4], $str);
$wetter['windr'] = $str['1'];
 

//Übersetze Windrichtung ins Deutsche
switch($wetter['windr'])  
{  
    case 'North':  
        $wetter['windr'] = 'Nord';  
    break;  
     
    case 'East':  
        $wetter['windr'] = 'Ost';  
    break; 
     
    case 'South':  
        $wetter['windr'] = 'S&uuml;d';  
    break;  

     case 'West':  
        $wetter['windr'] = 'West';  
    break; 
     
    case 'SE':  
        $wetter['windr'] = 'SO';  
    break;  
     
    case 'SSE':  
        $wetter['windr'] = 'SSO';  
    break; 
     
    case 'NE':  
        $wetter['windr'] = 'NO';  
    break; 
     
    case 'ESE':  
        $wetter['windr'] = 'OSO';  
    break;  
     
    case 'NNE':  
        $wetter['windr'] = 'NNO';  
    break;  
     
    case 'ENE':  
        $wetter['windr'] = 'ONO';  
    break;  
     
    case 'Calm':  
        $wetter['windr'] = 'Windstill';  
    break;  
     
    default:  
        $wetter['windr'] = $wetter['windr'];  
    break; 
}

//Windgeschwindigkeit
preg_match("/Wind Speed: (.*?)mph \/ (.*?)km\/h/si", $arr[5], $str);
$wetter['windg'] = $str['2'];


//echo $wetter['temp'];
//echo $wetter['verh'];
//echo $wetter['windr'];
//echo $wetter['windg'];
//echo '<pre>' . print_r($wetter, true) . '</pre>'; 
?>

<html>
  <head>
  <title>Das Wetter in Waldfeucht</title>
  </head>
  <body>
  <h2>Waldfeucht</h2>
  <br>
  <?php
  echo  $wetter['temp']; 
  echo  $wetter['verh']; 
  echo  $wetter['windg'];
  echo  $wetter['windr'];
  echo  $wetter['feuchte'];
  ?>
  </body>
  </html>

Grüße, GSK
 
Zuletzt bearbeitet:
(Du hättest auch einen neuen Thread aufmachen können und auf diesen verweisen, naja)

Wo ist jetzt das Problem? Willst du je nach Wetterlage ein anderes Bild anzeigen?
Dann mach doch eine IF-Abfrage (SWITCH geht auch),
 
Hallo zusammen,

zuerst einmal ein fettes SORRY, dass ich diesen alten Thread wieder ausgrabe. Aber Freund Google hat mich hierher geführt und ich bin mit dieser Lösung absolut zufrieden und bedanke mich schon einmal für eure Hilfe.

Mir schwebt vor, zu den einzelnen Wetterbedingungen ein Wettericon anzeigen zu lassen, was die aktuelle Bedingungen anzeigt. Ich bin noch nicht so fit, was PHP betrifft und würde mich riesig freuen, wenn einer eine Lösung dazu hat.

Reisst mir bitte nicht den Kopf ab. Ich würde gerne diesen Code mit euch weiterentwickeln. Ich finde es ist eine leicht verständliche Lösung, die wohl super fortgeführt bzw. ausgebaut werden kann.

Mein Code sieht derzeit so aus:

PHP:
<?php
//Wetter in Waldfeucht
$url = "http://rss.wunderground.com/auto/rss_full/global/stations/10500.xml"; 
$content = implode("", file($url)); 

preg_match_all("/\<item>(.*?)\<\/item\>/si", $content, $results); 
preg_match("/\<description\>(.*?)\<\/description\>/si", $results[1][0], $desc); 

$arr = explode(" | ",$desc[1]); 

/* 
 * echo '<pre>' . print_r($arr, true) . '</pre>'; 
 *  
 * Array 
 * ( 
 *     [0] => Temperature: 86°F / 30°C 
 *     [1] => Humidity: 74% 
 *     [2] => Pressure: 29.83in / 1010hPa 
 *     [3] => Conditions: Partly Cloudy 
 *     [4] => Wind Direction: ESE 
 *     [5] => Wind Speed: 5mph / 7km/h 
 *     [6] => Updated: 10:00 PM PHT 
 * ) 
 */ 
//Temperatur  
preg_match("/Temperature: (.*?)F \/ (.*?)C/si", $arr[0], $str);
$wetter['temp'] = $str['2'];
 

//Wetterbedingung
preg_match("/Conditions: (.*)/si", $arr[3], $str);
$wetter['verh'] = $str['1'];

//Übersetze Wetterbedingung ins Deutsche
switch($wetter['verh'])  
{  
    case 'Partly Cloudy':  
        $wetter['verh'] = 'Teils wolkig';  
    break;  
      
     case 'Mostly Cloudy':  
        $wetter['verh'] = '&Uuml;berwiegend wolkig';  
    break; 
      
    case 'Scattered Clouds':  
        $wetter['verh'] = 'Teils wolkig';  
    break;  
      
    case 'Overcast':  
        $wetter['verh'] = 'Bew&ouml;lkt';  
    break;  
     
    case 'Clear':  
        $wetter['verh'] = 'Heiter';  
    break;  
      
     case 'Fog':  
        $wetter['verh'] = 'Nebel';  
    break;  
      
     case 'Heavy Fog':  
        $wetter['verh'] = 'Starker Nebel';  
    break;  
      
     case 'Light Fog':  
        $wetter['verh'] = 'Leicher Nebel';  
    break;  
     
    case 'Thunderstorm':  
        $wetter['verh'] = 'Gewitter';  
    break;  
     
    case 'Light Thunderstorm':  
        $wetter['verh'] = 'Leichte Gewitter';  
    break;  
     
    case 'Heavy Thunderstorm':  
        $wetter['verh'] = 'Starke Gewitter';  
    break;  
      
     case 'Thunderstorms and Rain':  
        $wetter['verh'] = 'Gewitter mit Regen';  
    break;  
      
     case 'Light Thunderstorms and Rain':  
        $wetter['verh'] = 'Leichte Gewitter mit Regen';  
    break;  
      
     case 'Light Rain Showers':  
        $wetter['verh'] = 'Leichte Regenschauer';  
    break;  
     
     case 'Heavy Rain Showers':  
        $wetter['verh'] = 'Starke Regenschauer';  
    break;  
     
     case 'Light Rain':  
        $wetter['verh'] = 'Leichter Regen';  
    break;  
     
     case 'Haze':  
        $wetter['verh'] = 'Tr&uuml;be';  
    break;  
      
      case 'Patches of Fog':  
        $wetter['verh'] = 'Nebelfelder';  
    break;  
     
      case 'Unknown Percipitation':  
        $wetter['verh'] = 'Ung. Niederschl&auml;ge';  
    break;  
     
    case 'Light Drizzle':  
        $wetter['verh'] = 'Leichter Spr&uuml;hregen';  
    break;  
     
    case 'Mist':  
        $wetter['verh'] = 'Leicher Nebel';  
    break; 
     
    case 'Light Rain Mist':  
        $wetter['verh'] = 'Leicher Nebel';  
    break; 
      
    default:  
        $wetter['verh'] = $wetter['verh'];  
    break;   
}  

//Luftfeuchtigkeit
preg_match("/Humidity: (.*)/si", $arr[1], $str);
$wetter['feuchte'] = $str['1'];

 
//Windrichtung
preg_match("/Wind Direction: (.*)/si", $arr[4], $str);
$wetter['windr'] = $str['1'];
 

//Übersetze Windrichtung ins Deutsche
switch($wetter['windr'])  
{  
    case 'North':  
        $wetter['windr'] = 'Nord';  
    break;  
     
    case 'East':  
        $wetter['windr'] = 'Ost';  
    break; 
     
    case 'South':  
        $wetter['windr'] = 'S&uuml;d';  
    break;  

     case 'West':  
        $wetter['windr'] = 'West';  
    break; 
     
    case 'SE':  
        $wetter['windr'] = 'SO';  
    break;  
     
    case 'SSE':  
        $wetter['windr'] = 'SSO';  
    break; 
     
    case 'NE':  
        $wetter['windr'] = 'NO';  
    break; 
     
    case 'ESE':  
        $wetter['windr'] = 'OSO';  
    break;  
     
    case 'NNE':  
        $wetter['windr'] = 'NNO';  
    break;  
     
    case 'ENE':  
        $wetter['windr'] = 'ONO';  
    break;  
     
    case 'Calm':  
        $wetter['windr'] = 'Windstill';  
    break;  
     
    default:  
        $wetter['windr'] = $wetter['windr'];  
    break; 
}

//Windgeschwindigkeit
preg_match("/Wind Speed: (.*?)mph \/ (.*?)km\/h/si", $arr[5], $str);
$wetter['windg'] = $str['2'];


//echo $wetter['temp'];
//echo $wetter['verh'];
//echo $wetter['windr'];
//echo $wetter['windg'];
//echo '<pre>' . print_r($wetter, true) . '</pre>'; 
?>

<html>
  <head>
  <title>Das Wetter in Waldfeucht</title>
  </head>
  <body>
  <h2>Waldfeucht</h2>
  <br>
  <?php
  echo  $wetter['temp']; 
  echo  $wetter['verh']; 
  echo  $wetter['windg'];
  echo  $wetter['windr'];
  echo  $wetter['feuchte'];
  ?>
  </body>
  </html>

Grüße, GSK

Da du dein switch über $wetter['verh'] ja schon hast, kannst du da vor dem jeweiligen break eines case einfach folgendes hinzufügen:

$wetter['icon'] = 'regen.gif';

oder ähnliches. In der Ausgabe kannt du das Bild dann per:

Code:
<img src="images/<?php echo $wetter['icon'] ?>" alt="<?php echo $wetter['verh'] ?>" />

ausgeben.
 
(Du hättest auch einen neuen Thread aufmachen können und auf diesen verweisen, naja)

Wo ist jetzt das Problem? Willst du je nach Wetterlage ein anderes Bild anzeigen?
Dann mach doch eine IF-Abfrage (SWITCH geht auch),

Richtig. Ich möchte je nach Wetterlage ein Bild einfügen, hab aber keinen Plan, welchen Code ich wo einfügen muss. Kann ich das dann hier unterbringen?
PHP:
    case 'Partly Cloudy':  
        $wetter['verh'] = 'Teils wolkig';  
    break;
[...]

Einfach $img... einfügen geht ja nicht. Ich weiß jetzt aber auch nicht, wie ich das lösen könnte.
Danke für die Hilfe!

Grüße, GSK
 

Neue Beiträge

Zurück