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-09-17
Numer tabeli: 181/A/NBP/2026
| nazwa waluty | kod waluty | kurs średni |
| bat (Tajlandia) | THB | 0.1140 |
| dolar amerykański | USD | 3.8030 |
| dolar australijski | AUD | 2.7051 |
| dolar Hongkongu | HKD | 0.4848 |
| dolar kanadyjski | CAD | 2.7190 |
| dolar nowozelandzki | NZD | 2.1811 |
| dolar singapurski | SGD | 2.9805 |
| euro | EUR | 4.3632 |
| forint (Węgry) | HUF | 0.011979 |
| frank szwajcarski | CHF | 4.6076 |
| funt szterling | GBP | 5.0942 |
| hrywna (Ukraina) | UAH | 0.0851 |
| jen (Japonia) | JPY | 0.024412 |
| korona czeska | CZK | 0.1792 |
| korona duńska | DKK | 0.5837 |
| korona islandzka | ISK | 0.03121 |
| korona norweska | NOK | 0.4035 |
| korona szwedzka | SEK | 0.3871 |
| lej rumuński | RON | 0.8295 |
| lira turecka | TRY | 0.0779 |
| nowy izraelski szekel | ILS | 1.2527 |
| peso chilijskie | CLP | 0.003991 |
| peso filipińskie | PHP | 0.0606 |
| peso meksykańskie | MXN | 0.2209 |
| rand (Republika Południowej Afryki) | ZAR | 0.2333 |
| real (Brazylia) | BRL | 0.7389 |
| ringgit (Malezja) | MYR | 0.9277 |
| rupia indonezyjska | IDR | 0.00021438 |
| rupia indyjska | INR | 0.039649 |
| won południowokoreański | KRW | 0.002746 |
| yuan renminbi (Chiny) | CNY | 0.5670 |
| SDR (MFW) | XDR | 5.1771 |