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.
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.