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

Numer tabeli: 216/A/NBP/2026


nazwa walutykod walutykurs średni
bat (Tajlandia)THB0.1170
dolar amerykańskiUSD3.9101
dolar australijskiAUD2.7418
dolar HongkonguHKD0.4984
dolar kanadyjskiCAD2.8022
dolar nowozelandzkiNZD2.2039
dolar singapurskiSGD3.0630
euroEUR4.3916
forint (Węgry)HUF0.012095
frank szwajcarskiCHF4.7844
funt szterlingGBP5.2644
hrywna (Ukraina)UAH0.0860
jen (Japonia)JPY0.024695
korona czeskaCZK0.1809
korona duńskaDKK0.5875
korona islandzkaISK0.032149
korona norweskaNOK0.4217
korona szwedzkaSEK0.4006
lej rumuńskiRON0.8224
lira tureckaTRY0.0782
nowy izraelski szekelILS1.2358
peso chilijskieCLP0.004046
peso filipińskiePHP0.0622
peso meksykańskieMXN0.2104
rand (Republika Południowej Afryki)ZAR0.2386
real (Brazylia)BRL0.7157
ringgit (Malezja)MYR0.9665
rupia indonezyjskaIDR0.00021627
rupia indyjskaINR0.041393
won południowokoreańskiKRW0.002915
yuan renminbi (Chiny)CNY0.5863
SDR (MFW)XDR5.2915

Zobacz również