Marcin Mazureknarzędzia online · artykuły · księgarniaRSS

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 walutykod walutykurs średni
bat (Tajlandia)THB0.1140
dolar amerykańskiUSD3.8030
dolar australijskiAUD2.7051
dolar HongkonguHKD0.4848
dolar kanadyjskiCAD2.7190
dolar nowozelandzkiNZD2.1811
dolar singapurskiSGD2.9805
euroEUR4.3632
forint (Węgry)HUF0.011979
frank szwajcarskiCHF4.6076
funt szterlingGBP5.0942
hrywna (Ukraina)UAH0.0851
jen (Japonia)JPY0.024412
korona czeskaCZK0.1792
korona duńskaDKK0.5837
korona islandzkaISK0.03121
korona norweskaNOK0.4035
korona szwedzkaSEK0.3871
lej rumuńskiRON0.8295
lira tureckaTRY0.0779
nowy izraelski szekelILS1.2527
peso chilijskieCLP0.003991
peso filipińskiePHP0.0606
peso meksykańskieMXN0.2209
rand (Republika Południowej Afryki)ZAR0.2333
real (Brazylia)BRL0.7389
ringgit (Malezja)MYR0.9277
rupia indonezyjskaIDR0.00021438
rupia indyjskaINR0.039649
won południowokoreańskiKRW0.002746
yuan renminbi (Chiny)CNY0.5670
SDR (MFW)XDR5.1771

Zobacz również