Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [class] Pogoda, PHP5
woj_tas
post 16.04.2007, 22:46:14
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Klasa pobiera aktualną pogodę z serwisu http://weather.yahoo.com/

  1. <?php
  2. class pogoda{
  3. private $parametry = array();
  4. private $wartosci = array();
  5. private $channel = '';
  6.  
  7. function __construct($miasto){
  8. $wartosci__ = array('item/yweather:condition', 'yweather:wind', 'yweather:atmosphere', 'yweather:astronomy'); 
  9.  
  10. $this -> channel = $channel = simplexml_load_file($miasto);
  11. $this -> pobierz_parametry();
  12.  
  13. $this -> pobierz_wartosci($wartosci__);
  14. $this -> pobierz_url_obrazka();
  15. }
  16.  
  17. private function pobierz_parametry(){
  18. $this -> parametry = $this -> pobierz_('yweather:units');
  19. } 
  20.  
  21. private function pobierz_($param){
  22. $tmp = array();
  23. $wind = $this->channel -> xpath('//channel/'.$param);
  24.  
  25. foreach ($wind as $k => $v){
  26. foreach($v -> attributes() as $k => $v){
  27. $tmp[$k] = (string)$v;
  28. }
  29. }
  30. return $tmp;  
  31. } 
  32. public function parametry(){
  33. return (array)$this->parametry;
  34. }
  35.  
  36. public function wartosci(){
  37. return (array)$this->wartosci;
  38. }
  39.  
  40. private function pobierz_wartosci($w){
  41. if(is_array($w)){
  42. foreach($w as $w_){
  43. $this -> polacz($this -> pobierz_($w_));
  44. }
  45. return true;
  46. }else{
  47. return false;
  48. }
  49. }
  50.  
  51. private function polacz($param){
  52. foreach($param as $p => $v){
  53. $this -> wartosci[$p] = $v;
  54. }
  55.  
  56. }
  57.  
  58. private function pobierz_url_obrazka(){
  59. $this -> wartosci['url'] = 'http://l.yimg.com/us.yimg.com/i/us/we/52/'.$this -> wartosci['code'].'.gif';
  60. }
  61. }
  62. ?>


Obiekt klasy (przyklad dla Zielonej Góry):

  1. <?php
  2. $pogoda = new pogoda('http://xml.weather.yahoo.com/forecastrss?p=PLXX0043&u=c');
  3. $parametry = array();
  4. $parametry = $pogoda -> parametry();
  5.  
  6. $wartosci = array();
  7. $wartosci = $pogoda -> wartosci();
  8. ?>


Wynik:

Kod
Array
(
    [temperature] => C
    [distance] => km
    [pressure] => mb
    [speed] => kph
)
Array
(
    [text] => Clear
    [code] => 31
    [temp] => 14
    [date] => Mon, 16 Apr 2007 11:00 pm CEST
    [chill] => 14
    [direction] => 160
    [speed] => 11
    [humidity] => 40
    [visibility] => 32000
    [pressure] => 1020
    [rising] => 2
    [sunrise] => 6:00 am
    [sunset] => 7:56 pm
    [url] => http://l.yimg.com/us.yimg.com/i/us/we/52/31.gif
)



Klasa wyłącznie pod PHP5

Pozdrawiam smile.gif


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:34