Gå til innhold

Bytte charset på ekstern xml


Anbefalte innlegg

Hei!

 

Jeg sitter og prøver å lage "weather forecast" i PHP.

 

Har valgt å bruke google weather api for å hente informasjon om det lokale været.. og her kommer problemet mitt. Når jeg skal inkludere google weather xml så ser det ut som det er feil charset på xml arket (http://www.google.no/ig/api?weather=Hamar).

 

Jeg har selv utf-8 som charset på html output, men fortsatt så kommer det opp <spørsmålstegn> hver gang det skal være en æ,ø eller å. Har prøvd å kopiere xml'n fra google og lagret den lokalt på serveren, for så å hente den derfra.. og da fungerte det helt fint :hmm: men når jeg henter den fra google sin server, så får jeg problemer med special char. Det skulle vel ikke ha noe å si om xml hentes direkte fra google eller fra lokal server(?)

 

Kan noen snille guruer hjelpe meg med å få til dette?

 

Her er xml: http://www.google.no/ig/api?weather=Hamar

Her er lenke til prosjektet: http://designfokus.com/apps/?app=forecast

 

php klasse:

 

<?php

//PHP klasse som brukes til å hente vær fra google API
//Laget av Emil Kjelsrud - DesignFokus © 09


class WeatherClass {

  function HentFraBy($by) {

	  $current_weather=array(); //initialiserer array

	  //hent xml fra google
	  $xml = file_get_contents("http://www.google.no/ig/api?weather=".$by);

	  //Henter navnet på stedet som skal forecaste's
	  preg_match('<city data="(.*?)"/>',$xml,$match);
	  //setter bynavn/fylke til array
	  $current_weather['by']=$match[1];

	  //Henter dato på forecast
	  preg_match('<forecast_date data="(.*?)"/>',$xml,$match);
	  //lagrer dato til midlertidig variabel for formatering
	  $dato = $match[1];

	  //Formaterer dato
	  $split=explode("-",$dato);
	  $year=$split[0];
	  $month=$split[1];
	  $date=$split[2];
	  //Setter sammen datoen igjen
	  $dato = $date.".".$month." - ".$year;

	  //Setter dato til array
	  $current_weather['dato']=$dato;

	  //Henter dagens beskrivelse
	  preg_match('<condition data="(.*?)"/>',$xml,$match);
	  //setter beskrivelsen til array
	  $current_weather['dagensbeskrivelse']=$match[1];

	  //Henter dagens vind
	  preg_match('<wind_condition data="Vind: (.*?)"/>',$xml,$match);
	  //setter vind til array
	  $vind = str_replace("NV", "NordVest", $match[1]);
	  $current_weather['dagensvind']=$vind;

	  //Henter fuktighet
	  preg_match('<humidity data="Fuktighet: (.*?)"/>',$xml,$match);
	  //setter fuktighet til array
	  $current_weather['fuktighet']=$match[1];

	  //Henter dagens bilde
	  preg_match('<icon data="(.*?)"/>',$xml,$match);
	  //setter url til bilde i array
	  $current_weather['day1image']= "http://www.google.no/ig".$match[1];


	  //Retunerer array med all informasjonen
	  return $current_weather;
  }
}
?>

 

 

Vennligst gi meg beskjed om dere ønsker å bruke denne klassen.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...