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-11-09

Numer tabeli: 218/A/NBP/2026


nazwa walutykod walutykurs średni
bat (Tajlandia)THB0.1168
dolar amerykańskiUSD3.9199
dolar australijskiAUD2.7060
dolar HongkonguHKD0.4999
dolar kanadyjskiCAD2.7841
dolar nowozelandzkiNZD2.1988
dolar singapurskiSGD3.0630
euroEUR4.3873
forint (Węgry)HUF0.01208
frank szwajcarskiCHF4.7925
funt szterlingGBP5.2593
hrywna (Ukraina)UAH0.0862
jen (Japonia)JPY0.024802
korona czeskaCZK0.1802
korona duńskaDKK0.5869
korona islandzkaISK0.032071
korona norweskaNOK0.4179
korona szwedzkaSEK0.3989
lej rumuńskiRON0.8214
lira tureckaTRY0.0781
nowy izraelski szekelILS1.2349
peso chilijskieCLP0.004014
peso filipińskiePHP0.0619
peso meksykańskieMXN0.2108
rand (Republika Południowej Afryki)ZAR0.2379
real (Brazylia)BRL0.7117
ringgit (Malezja)MYR0.9657
rupia indonezyjskaIDR0.00021687
rupia indyjskaINR0.041729
won południowokoreańskiKRW0.002909
yuan renminbi (Chiny)CNY0.5873
SDR (MFW)XDR5.3201

Zobacz również