Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 30.03.2005 Skąd: Łódź Ostrzeżenie: (0%)
|
Witam,
poszukiwałem klasy do obsługi XML'a z kursami walut z NBP i w końcu napisałem sam, może komuś się przyda
przykładowe użycie:
wynik: Cytat Array ( [0] => dolar amerykański [1] => 1 [2] => USD [3] => 2,8020 )
wynik: Cytat 2007-05-22
Array ( [USD] => Array ( [0] => dolar amerykaĹ„ski [1] => 1 [2] => USD [3] => 2,8020 ) [EUR] => Array ( [0] => euro [1] => 1 [2] => EUR [3] => 3,7735 ) ) Ten post edytował stanik_jr 22.05.2007, 13:57:58 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%)
|
ja to tak rozwiązałem
Kod <?php class cWaluta { public $dane = nill; // dane xmla public $numer = ""; // numer notowa.. public $data = ""; // data notowa.. public $waluta = 'PLN'; public $lista = array(); private $znazwy = array('USD'=>'dolar ameryka..ski','HUF'=>'forint (W..gry)','DKK'=>'korona du..ska','EEK'=>'korona esto..ska', 'RON'=>'lej rumu..ski','BGN'=>'lew bu..garski','LVL'=>'..at ..otewski','PHP'=>'peso filipi..skie','XMN'=>'peso meksyka..skie', 'KRW'=>'won (Korea P..d.)'); static $singlet = nill; static function nazwa_pliku($lokalizacja) { $nazwa = ""; $d = dir($lokalizacja); while (false !== ($entry = $d->read())) if(eregi("([A-Za-z0-9]{1,})(.xml)",$entry)) return $lokalizacja.$entry; } static function wwalucie($nazwa) { $tmp = cWaluta::$singlet; if(isset($tmp->lista[$nazwa])) $tmp->waluta = $nazwa; else $tmp->waluta = 'PLN'; } static function wWaluta($xmlfile) { if(cWaluta::$singlet == nill) cWaluta::$singlet = new cWaluta($xmlfile); return cWaluta::$singlet; } public function przewalutuj($kwota) { $waluta = $this->lista[$this->waluta]; //print_r($waluta); $kw = $kwota / $waluta['kurs']; return sprintf("%01.2f {$waluta['kod']}",$kw * $waluta['licznik']); } private function zmien_nazwe($kod,$nazwa) { if(isset($this->znazwy[$kod])) return $this->znazwy[$kod]; else return $nazwa; } public function __construct($xmlfile) { $this->dane = new DOMDocument("1.0","utf-8"); $this->dane->load($xmlfile); // pobranie mumeru kurs..w $doc = $this->dane->getElementsByTagName('numer_tabeli'); $this->numer = $doc->item(0)->nodeValue; // pobranie daty kursu $doc = $this->dane->getElementsByTagName('data_publikacji'); $this->data = $doc->item(0)->nodeValue; // tworzenie listy walut $doc = $this->dane; $wal = $doc->getElementsByTagName('pozycja'); $this->lista['PLN']= array('nazwa'=>'Polski z..oty','licznik'=>'1','kurs'=>'1','kod'=>'PLN'); foreach($wal as $item) { $kod = $item->getElementsByTagName('kod_waluty')->item(0)->nodeValue; $nazwa = $this->zmien_nazwe($kod, $item->getElementsByTagName('nazwa_waluty')->item(0)->nodeValue); $licznik = $item->getElementsByTagName('przelicznik')->item(0)->nodeValue; $kurs = str_replace(',','.', $item->getElementsByTagName('kurs_sredni')->item(0)->nodeValue); $this->lista[$kod]= array('nazwa'=>$nazwa,'licznik'=>$licznik,'kurs'=>$kurs,'kod'=>$kod); } } } ?> je to w singlecie Kod $plik = cWaluta::nazwa_pliku('/home/grobyopi/www.nbp.pl/Kursy/xml/'); // podajje lokalizacje gdzie jest zapisany xml $waluty = cWaluta::wWaluta($plik); cWaluta::wwalucie("USD"); // ustawiam walute //w cenniku podaje $waluty->przewalutuj(50); //to jest 50zł zwraca juz przeliczone w cronie mam wpisane Kod codzienie o 12:59 "/bin/rm /home/grobyopi/www.nbp.pl/Kursy/xml/*" codziennie o 13:00 "/usr/bin/wget -r http://www.nbp.pl/Kursy/KursyA.html" może ci się coś przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
stanik_jr waluty z NBP 22.05.2007, 12:04:49
Sokal A to tak można bez pozwolenia wykorzystywać dane b... 22.05.2007, 21:06:48
kwiateusz zapewne tak, zwłaszcza że udostępniają jeszcze xml... 22.05.2007, 21:11:58
arborea No pewnie, że można korzystać - ja wrzucam co tylk... 21.06.2007, 21:26:46
phpion.com Odświeżam topic.
Czy pobierał ktoś z Was kursy z P... 21.10.2007, 20:02:42
webmasts wywala mi taki błąd
[XML] pobierz, plaintext Pars... 22.12.2007, 21:08:35
ExPlOiT Wklej kawałek kodu włącznie z 5 linią 22.12.2007, 21:44:07
webmasts [PHP] pobierz, plaintext <?php class Walut... 22.12.2007, 21:55:23
ExPlOiT [PHP] pobierz, plaintext <?php class Walut... 22.12.2007, 22:05:26
webmasts nadal to samo 22.12.2007, 22:14:31
ev45ive zapewne masz php4 a ten kod pisany jest pod php5
... 9.01.2008, 21:31:46 
mike Cytat(ev45ive @ 9.01.2008, 21:31:46 )... 10.01.2008, 10:48:05
corradzisz Hmm, od dwóch dni caly czas 0 mam na Euro. Coś się... 22.02.2008, 11:38:49
jarek_bolo Witaj
Chyba czegoś nie rozumiem, albo masz błąd w... 3.03.2008, 13:13:21
bim2 Ehm, znak ! to znak "przeciwiństwa... 3.03.2008, 14:23:16
jarek_bolo Mimo, że nie doczytałeś i błędną odpowiedź dałeś t... 3.03.2008, 14:44:46
bim2 Rozumiem Jeszcze może wtrące, że można by sprawdz... 7.03.2008, 21:55:58
parzol Pozwolę zadać to pytanie tutaj aby nie otwierać no... 13.11.2008, 14:30:39
bllitz najprawdopodobniej są to weekendy i dni wolne 13.11.2008, 15:18:46
soldi Mi klasa nie działała poprawnie, dopiero... 22.11.2008, 23:59:16
dg2001 Witam, chciałem spróbować użyć powyższej klasy do ... 24.03.2009, 22:05:51 ![]() ![]() |
|
Aktualny czas: 15.01.2026 - 18:21 |