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-06

Numer tabeli: 217/A/NBP/2026


nazwa walutykod walutykurs średni
bat (Tajlandia)THB0.1172
dolar amerykańskiUSD3.9321
dolar australijskiAUD2.7010
dolar HongkonguHKD0.5016
dolar kanadyjskiCAD2.7930
dolar nowozelandzkiNZD2.1794
dolar singapurskiSGD3.0684
euroEUR4.3925
forint (Węgry)HUF0.012076
frank szwajcarskiCHF4.8037
funt szterlingGBP5.2630
hrywna (Ukraina)UAH0.0867
jen (Japonia)JPY0.024832
korona czeskaCZK0.1805
korona duńskaDKK0.5876
korona islandzkaISK0.032109
korona norweskaNOK0.4176
korona szwedzkaSEK0.3980
lej rumuńskiRON0.8224
lira tureckaTRY0.0785
nowy izraelski szekelILS1.2339
peso chilijskieCLP0.004023
peso filipińskiePHP0.0624
peso meksykańskieMXN0.2103
rand (Republika Południowej Afryki)ZAR0.2382
real (Brazylia)BRL0.7144
ringgit (Malezja)MYR0.9686
rupia indonezyjskaIDR0.00021742
rupia indyjskaINR0.041872
won południowokoreańskiKRW0.002907
yuan renminbi (Chiny)CNY0.5894
SDR (MFW)XDR5.3081

Zobacz również