potrzebowałem klasy do wyciągania kursów walut z NBP, znalazłem klasę napisaną przez @stanik_jr, ale nie wiem czemu nie działa mi pomimo usilnej walki

16.11.2007 - drobna poprawka
<?php /** * Pobierane kursów walut ze strony NBP * @author Czachor <czahor[at]gmail[dot]com> */ class NBPExchange { /** * ścieżka do pliku XML z kursami walut * @var str */ /** * nazwa pliku zawirającego dane o plikach XML * @var str */ /** * przechowuje nazwę aktualnego pliku XML * @var str */ public $todayXMLFile = null; /** * przechowuje dane walut wg kodu waluty * @var array */ /** * przechowuje dane walut wg nazwy kraju * @var array */ function __construct() { $this->getTodayXML(); $this->createCurrencyArray(); } /** * pobiera nazwę aktualnego pliku XML z kursami walut */ private function getTodayXML() { if ($remoteDirInfo === false) { return false; }; //usunięcie ostatniego pustego elementu tablicy, jeśli tego nie będzie, pojawi się //"Notice: Uninitialized string offset: 0" //wyszukiwanie elementów z 'c' ("Tabela kursów średnich walut obcych") } /** * funkcja zwrotna wywoływana przez array_filter w $this->getTodayXML() * wyszukuje wszystkie elementy, w których pierwsza litera to "b" (oznaczenie NBP dla * plików XML zawierających "Tabelę kursów średnich walut obcych" * @param str $data * @return str */ private function searchB($data) { if ($data{0} == 'b') { return $data; }; } /** * tworzy tablice z danymi walut */ private function createCurrencyArray() { $xml = simplexml_load_file(self::$sXmlURL . $this->todayXMLFile . '.xml'); foreach($xml->pozycja as $pozycja => $pozData) { $this->currency[(string) $pozData->kod_waluty] = $pozData; $this->currencyByCountry[(string) $pozData->nazwa_kraju] = $pozData; }; } }; //przykład użycia $info = new NBPExchange(); // ALL (Albania): 2,9803 echo 'ALL (' . $info->currency['ALL']->nazwa_kraju . '): ' . $info->currency['ALL']->kurs_sredni . '<br />'; // Angola (AOA): 0,0331 echo 'Angola (' . $info->currencyByCountry['Angola']->kod_waluty . '): ' . $info->currencyByCountry['Angola']->kurs_sredni; /* SimpleXMLElement Object ( [nazwa_kraju] => Albania [nazwa_waluty] => lek [przelicznik] => 100 [kod_waluty] => ALL [kurs_sredni] => 2,9803 ) */ ?>
Wszystkie uwagi mile widziane
