Kurs walut NBP - wersja XML (nowa)
Skrypt pobierania danych (kursy walut) ze strony NBP. Dane pobiera z pliku XML - nbp.pl
function nbp2()
{
$ctx = stream_context_create(array('http' => array('timeout' => 8)));
$content = @file_get_contents('https://api.nbp.pl/api/exchangerates/tables/A/?format=xml', false, $ctx);
if ($content === false || trim($content) === '') {
return '<p>Kursy sa chwilowo niedostepne - serwis NBP nie odpowiada.</p>';
}
$poprzedni = libxml_use_internal_errors(true);
$tabela = simplexml_load_string($content);
libxml_clear_errors();
libxml_use_internal_errors($poprzedni);
if ($tabela === false || !isset($tabela->ExchangeRatesTable)) {
return '<p>Kursy sa chwilowo niedostepne - nieoczekiwany format danych NBP.</p>';
}
$xml = $tabela->ExchangeRatesTable;
$data_publikacji = (string) $xml->EffectiveDate;
$numer_tabeli = (string) $xml->No;
$r = "<h2>Data publikacji kursu: $data_publikacji</h2>";
$r .= "<h2>Numer tabeli: $numer_tabeli</h2><br>";
$r .= '<table style="border-spacing: 10px">';
$r .= '<tr>';
$r .= '<td>nazwa waluty</td>';
$r .= '<td>kod waluty</td>';
$r .= '<td>kurs średni</td>';
$r .= '</tr>';
foreach ($xml->Rates->Rate as $pos)
{
if($pos->Code == 'USD' || $pos->Code == 'EUR' || $pos->Code == 'CHF' || $pos->Code == 'GBP')
{
$strong_a = '<strong>';
$strong_b = '</strong>';
}
else
{
$strong_a = '';
$strong_b = '';
}
$r .= '<tr>';
$r .= '<td>' . $strong_a . $pos->Currency . $strong_b . '</td>';
$r .= '<td>' . $strong_a . $pos->Code . $strong_b . '</td>';
$r .= '<td>' . $strong_a . $pos->Mid . $strong_b . '</td>';
$r .= '</tr>';
}
$r .= '</table>';
return $r;
}
Wywołanie:
echo nbp2();Wynik działania:
Data publikacji kursu: 2026-11-06
Numer tabeli: 217/A/NBP/2026
| nazwa waluty | kod waluty | kurs średni |
| bat (Tajlandia) | THB | 0.1172 |
| dolar amerykański | USD | 3.9321 |
| dolar australijski | AUD | 2.7010 |
| dolar Hongkongu | HKD | 0.5016 |
| dolar kanadyjski | CAD | 2.7930 |
| dolar nowozelandzki | NZD | 2.1794 |
| dolar singapurski | SGD | 3.0684 |
| euro | EUR | 4.3925 |
| forint (Węgry) | HUF | 0.012076 |
| frank szwajcarski | CHF | 4.8037 |
| funt szterling | GBP | 5.2630 |
| hrywna (Ukraina) | UAH | 0.0867 |
| jen (Japonia) | JPY | 0.024832 |
| korona czeska | CZK | 0.1805 |
| korona duńska | DKK | 0.5876 |
| korona islandzka | ISK | 0.032109 |
| korona norweska | NOK | 0.4176 |
| korona szwedzka | SEK | 0.3980 |
| lej rumuński | RON | 0.8224 |
| lira turecka | TRY | 0.0785 |
| nowy izraelski szekel | ILS | 1.2339 |
| peso chilijskie | CLP | 0.004023 |
| peso filipińskie | PHP | 0.0624 |
| peso meksykańskie | MXN | 0.2103 |
| rand (Republika Południowej Afryki) | ZAR | 0.2382 |
| real (Brazylia) | BRL | 0.7144 |
| ringgit (Malezja) | MYR | 0.9686 |
| rupia indonezyjska | IDR | 0.00021742 |
| rupia indyjska | INR | 0.041872 |
| won południowokoreański | KRW | 0.002907 |
| yuan renminbi (Chiny) | CNY | 0.5894 |
| SDR (MFW) | XDR | 5.3081 |