Jak pobrać i pokazać aktualne notowania średnich kursów walut z NBP, PHP Skrypty


[PHP] Jak pobrać i pokazać aktualne notowania średnich kursów walut z NBP?

0x01 graphic

Chcesz umieścić na stronie aktualne notowania średnich kursów walut z NBP.

0x01 graphic

Skrypt jest bardzo przydatny dla wszystkich serwisów z pogranicza biznesu i finansów. Wiele osób potrzebuje sprawdzić aktualne notowania i zamiast szukać ich w Sieci, może je oglądać na Twojej stronie.

Prosty skrypt umożliwia pobranie notować u samego źródła, czyli ze stron NBP. Zobacz jak pobrać i wstawić na stronę aktualne kursy walut:

<?

$f = @fopen("http://www.nbp.pl/Kursy/KursyA.html", "r");

if ($f) {

while(!feof($f)) $strona.= fread($f,1024); fclose($f);

$strona = preg_replace("/\r/", " ", $strona);

$strona = preg_replace("/\n/", " ", $strona);

preg_match("/z dnia <b>(.*?)<\/b>/", $strona, $zdnia);

echo "<br>średnie kursy walut <br>NBP z ". $zdnia[1];

preg_match_all("/<tr valign=\"middle\">.*?<\/tr>/", $strona, $sa);

for ($i=1; $i<count($sa[0]); $i++) {

$kursy[] = explode("`",preg_replace(

"/.*?<td.*?>(.*?)<\/td>.*?<td.*?>(.*?)<\/td>.*?<td.*?>(.*?)<\/td>.*/",

"$1`$2`$3",$sa[0][$i]));

}

}

for ($i=0; $i<count($kursy); $i++) {

if (eregi("USD",$kursy[$i][1])) echo "<br>1 USD - ".$kursy[$i][2];

if (eregi("EUR",$kursy[$i][1])) echo "<br>1 EUR - ".$kursy[$i][2];

if (eregi("GBP",$kursy[$i][1])) echo "<br>1 GBP - ".$kursy[$i][2];

}

?>

Przykład:
średnie kursy walut
NBP z 2004-05-14
1 USD - 4,0340
1 EUR - 4,7593
1 GBP - 7,0702

Kursy można pobrać na dwa sposoby - albo odczytać je ze strony WWW (jej adres jest stały) albo pobrać z pliku XML (ale adres tej strony zmienia się codziennie). Łatwiejszy wariant odczytania notowań to pobranie ich ze strony WWW.

Po wczytaniu strony, wystarczy za pomocą wyrażeń regularnych wyciąć z niej odpowiednie fragmenty tabeli i wypisać tylko te waluty, które nas interesują. Możesz oczywiście dopisać nazwy kolejnych walut, przykład obejmuje tylko te najczęściej wykorzystywane, a więc USD, EUR i GBP.

Program przestanie działać w chwili, gdy NBP zmieni adres, układ i kod swoich stron WWW, ale pewnie nie nastąpi to szybko... W razie zmiany kodu na stronie, wystarczy tylko zmodyfikować zawartość wyrażeń regularnych, aby całość nadal działała poprawnie.

W tablicy dwuwymiarowej $kursy zapisane są dane o wszystkich kursach walut. Dla dnia 2004.05.04 struktura tablicy prezentuje się następująco:

Array

(

[0] => Array

(

[0] => dolar amerykański

[1] => 1 USD

[2] => 3,9731

)

[1] => Array

(

[0] => dolar australijski

[1] => 1 AUD

[2] => 2,8841

)

[2] => Array

(

[0] => dolar hongkoński

[1] => 1 HKD

[2] => 0,5093

)

[3] => Array

(

[0] => dolar kanadyjski

[1] => 1 CAD

[2] => 2,9027

)

[4] => Array

(

[0] => euro

[1] => 1 EUR

[2] => 4,7805

)

[5] => Array

(

[0] => forint węgierski

[1] => 100 HUF

[2] => 1,9015

)

[6] => Array

(

[0] => frank szwajcarski

[1] => 1 CHF

[2] => 3,0774

)

[7] => Array

(

[0] => funt cypryjski

[1] => 1 CYP

[2] => 8,1572

)

[8] => Array

(

[0] => funt szterling

[1] => 1 GBP

[2] => 7,1070

)

[9] => Array

(

[0] => hrywna ukraińska

[1] => 1 UAH

[2] => 0,7453

)

[10] => Array

(

[0] => jen japoński

[1] => 100 JPY

[2] => 3,6029

)

[11] => Array

(

[0] => korona czeska

[1] => 1 CZK

[2] => 0,1477

)

[12] => Array

(

[0] => korona duńska

[1] => 1 DKK

[2] => 0,6424

)

[13] => Array

(

[0] => korona estońska

[1] => 1 EEK

[2] => 0,3055

)

[14] => Array

(

[0] => korona norweska

[1] => 1 NOK

[2] => 0,5808

)

[15] => Array

(

[0] => korona słowacka

[1] => 1 SKK

[2] => 0,1187

)

[16] => Array

(

[0] => korona szwedzka

[1] => 1 SEK

[2] => 0,5232

)

[17] => Array

(

[0] => lir maltański

[1] => 1 MTL

[2] => 11,2231

)

[18] => Array

(

[0] => lit litewski

[1] => 1 LTL

[2] => 1,3846

)

[19] => Array

(

[0] => łat łotewski

[1] => 1 LVL

[2] => 7,3052

)

[20] => Array

(

[0] => rand południowoafrykański

[1] => 1 ZAR

[2] => 0,5720

)

[21] => Array

(

[0] => rubel rosyjski

[1] => 1 RUB

[2] => 0,1370

)

[22] => Array

(

[0] => tolar słoweński

[1] => 100 SIT

[2] => 2,0041

)

[23] => Array

(

[0] => SDR (MFW)

[1] => 1 XDR

[2] => 5,8004

)

)

Aby pokazać informacje o Euro możesz użyć $kursy[4][0] dla opisu, $kursy[4][1] dla waluty i $kursy[4][2] dla kursu. Ale lepiej użyć szukania waluty w pętli (jak w skrypcie), bo dzisiaj Euro jest na 5 pozycji, ale za tydzień może być na 15-stej, jeżeli ktoś przestawi kolejność tabeli.



Wyszukiwarka

Podobne podstrony:
jak pobrac zdalny plik na lokalny server raz dziennie, PHP Skrypty
Skąd pobrać i w jaki sposób pokazać aktualne notowania spółek z giełd na całym świecie, PHP Skrypty
Jak stworzyć indeks pierwszych liter dla wybranej kolumny z tabeli, PHP Skrypty
Jak wypisać w tabeli zawartość pliku tekstowego z polami oddzielonymi separatorem, PHP Skrypty
Jak wysłać mailem w formacie HTML zawartość tabeli z bazy danych, PHP Skrypty
jak zmienic liczby na kod BCD dinary coded decimal, PHP Skrypty
Jak uzyskać IP lub domenę z jakiej łączy się użytkownik, PHP Skrypty
Jak zapisywać do pliku numery IP osób odwiedzających stronę, PHP Skrypty
Jak sprawdzić typy i atrybuty ustawione dla każdej z kolumn tabeli, PHP Skrypty
Jak sprawdzić czy zmienna przechowuje liczbę całkowitą lub rzeczywistą, PHP Skrypty
Jak stworzyć losowe porady wyświetlające się na stronie WWW, PHP Skrypty
Jak stworzyć koszyk zamówień do sklepu internetowego z wykorzystaniem cookies, PHP Skrypty
Jak stworzyć formularz do przesyłania informacji na podany email, PHP Skrypty
Jak wysłać e-mail korzystając z gniazd (socket) zamiast funkcji mail, PHP Skrypty
Jak pokazać i skąd wziąć imieniny przypadające na aktualny dzień, PHP Skrypty
Jak pobrać aktualny czas za pomocą potokołu DAYTIME z serwerów będących wzorcami czasu, PHP Skrypty
Jak wykryć i pokazać liczbę osób oglądających aktualnie stronę WWW, PHP Skrypty
Jak pobrać aktualny czas za pomocą potokołu TIME z serwerów będących wzorcami czasu, PHP Skrypty
Jak wyliczyć i pokazać datę godzinę powiększoną lub pomniejszoną o dowolną ilość dni godzin względem

więcej podobnych podstron