Środa, 12 grudnia 2018 • 346 dzień roku • Imieniny: Aleksandra, Adelajdy, Dagmary Kontakt

Jak pobierać kursy średnie walut obcych bezpośrednio ze strony NBP?

W celu umieszczenia na stronie www aktualnych kursów średnich walut obcych NBP najlepiej skorzystać z gotowej wtyczki (widgetu). Jest to najprostszy sposób, gdyż wymaga jedynie wklejenia w wybranym miejscu na stronie www kilku linijek kodu html (do swojego działania wtyczka wymaga aktywnego JavaScriptu). Jeżeli jednak wolisz samodzielnie pobierać notowania ze stron NBP, możesz wykorzystać w tym celu poniższy skrypt PHP.

Pobierz plik

include 'cURL.class.php';

class kursy_srednie_NBP {

    private $f;
    private $useragent;

    public function __construct($f) {
        $this->f = $f;
        $this->useragent = '';
    }

    function processUrl() {
        $fname = $this->f;
        $url = 'http://www.nbp.pl/kursy/xml/'.$fname;
        $cl = new cURL($url, $this->useragent);
        // sprawdzanie statusu url
        if($cl->status == 200) {
            // pobieranie zawartości pliku xml i zapis do zmiennej
            $res = $cl->getContents();
            $contents = $res['contents'];
            // zapis do pliku
            file_put_contents($fname, $contents);
        }
    }

    function updateKursy() {
        if(file_exists($this->f)) {
            // weryfikacja pliku
        } else {
            $this->processUrl();
        }
    }

} // koniec definicji klasy

$ksnbp = new kursy_srednie_NBP('a203z131018.xml');
$ksnbp->updateKursy();

W powyższym kodzie wykorzystujemy bibliotekę cURL, skrypt więc nie będzie działał, jeśli hosting, z którego korzystasz, nie oferuje dostępu do cURLa. Po uruchomieniu skrypt sprawdza, czy w bieżącym katalogu istnieje plik o takiej samej nazwie jak plik, który ma być pobrany (w powyższym przykładzie jest to 'a203z131018.xml', tj. plik z notowaniami z dnia 18-10-2013 r.). Jeśli taki plik istnieje, wówczas następuje ewentualna weryfikacja jego poprawności. W przeciwnym razie wykonywana jest funkcja processUrl, która najpierw sprawdza dostępność oczekiwanego pliku, a następnie pobiera go i zapisuje w katalogu bieżącym.

Pobieranie kursów w trzech prostych krokach

Krok 1

Najpierw pobierz spakowane pliki: pob-ksnbp.php i cURL.class.php. Pierwszy zawiera prezentowany wyżej skrypt, a drugi definicję klasy ułatwiającej korzystanie z cURLa.

Krok 2

Rozpakuj paczkę w wybranym katalogu. Otwórz w edytorze tekstowym plik pob-ksnbp.php i zmień nazwę pobieranego pliku xml. Jeśli tego nie zrobisz, zostanie pobrany przykładowy plik a203z131018.xml.

Krok 3

W pasku adresu przeglądarki wpisz adres pliku pob-ksnbp.php i naciśnij enter. To wszystko.

Główną wadą prezentowanego skryptu jest konieczość ręcznego wpisywania nazwy pobieranego pliku xml. W następnym artykule dowiesz się, jak zautomatyzować ten proces.