Aug

5

Cum preluam vremea de la YahooWeather

Posted by George under Snippets

V-am promis intr-un articol anterior, ca va voi arata cum putem prelua datele vremii de pe Yahoo Weather.

Resurse folosite:

1. SimplePie – download
2. API-ul Yahoo Weather (voi prelua vremea de la Buzau prin intermediul API-ului.
3. some PHP knowleadge :-)

In primul rand, dezarhivam SimplePie si copiem intr-un alt folder (ex: preluare) fisierul simplepie.inc. Pentru a putea prelua vremea trebuie sa facem o noua clasa personalizata pentru simplepie. Asa ca, acum cream fisierul simplepie_yweather.inc in care adaugam:

define("SIMPLE_NAMESPACE_YWEATHER", "http://xml.weather.yahoo.com/ns/rss/1.0");

class SimplePie_Item_Yweather extends SimplePie_Item {
// Functie pentru preluare temperatura
  function get_temperatura(){
	$data = $this->get_item_tags(SIMPLE_NAMESPACE_YWEATHER, 'condition');
	return $data[0]['attribs']['']['temp'];
  }
  // Functie pentru preluare conditii atmosferice
  function get_stare(){
	$data = $this->get_item_tags(SIMPLE_NAMESPACE_YWEATHER, 'condition');
	return $data[0]['attribs']['']['text'];
  }
}

Salvam, apoi cream fisierul preluare.php unde vom initia simpliepie.

// Includes simplepie
include("simplepie.inc");
include("simplepie_yweather.inc");

// Initializam simplePie()
$feed = new SimplePie();
$feed->set_feed_url('http://weather.yahooapis.com/forecastrss?p=ROXX0004&u=c'); // url-ul feed-ului ce contine informatiile despre vreme, ROXX0004 - codul Buzaului
$feed->set_item_class();
$feed->set_item_class('SimplePie_Item_Yweather'); // initializam clasa SimplePie_Item_Yweather, pe care am creat-o in fisierul simplepie_yweather.inc
$feed->init();
$feed->handle_content_type();
  foreach($feed->get_items() as $item){
  // $item->get_temperatura() este folosit pentru afisarea temperaturii (get_temperatura() - functie creata in simplepie_yweather.inc)
 // $item->get_stare() este folosit pentru afisarea conditiilor atmsoferice
  echo "La Buzau, s-a inregistrat temperatura de ".$item->get_temperatura()." grade C! Conditii atmosferice: ".$item->get_stare()."";
  }

Acesta este un mod foarte simplu de a prelua datele despre vreme, insa se poate folosi ca baza pentru o aplicatie foarte complexa: cu alegerea orasului, temperatura pe cateva zile in avans, realizare de statistici si lista poate continua. Daca ati considerat ca v-a fost de folos, abonati-va la feed-ul meu si veti mai avea parte de asemenea mini-tutoriale. :)

Tags: , , ,

4 Comments so far

  1. magazin virtual (1 comments) Says:

    super articolul !
    chiar interesant :) ms !

  2. George (34 comments) Says:

    Ma bucur! Sper c-a ajutat…

  3. Jocuri cu fotbal (1 comments) Says:

    Bun articol,ms frumos…sper sa ma ajute:)

  4. Some Twitter stuff | George Jipa Says:

    [...] articol urmator am sa va arat si cum se preiau valorile legate de temperatura folosind API-ul Yahoo Weather, astfel va puteti face si voi un bot Twitter ca si [...]

Leave your comment

Mai scriu si pe...

Sustin