Экспорт курсов обмена валют в банках Москве в xml.

Вы можете разместить на своем сайте таблицу с курсами обмена валют в банках вашего города. Сайт KOVALUT.RU предлагает данные в формате XML о курсах валют в банках Москвы и курсах валют Центрального Банка России (ЦБ).

Внимание! Использование информации, представленной в XML формате, допускается только при условии, что непосредственно над или под блоком с информацией о курсах валют на вашей странице будет указана ссылка на источник информации. Гиперссылка должна указывать на страницу сайта KOVALUT.RU с курсами валют в Москве:

https://kovalut.ru

Загрузить таблицу с курсами валют в банках Москвы в формате XML можно с адреса:

https://informer.kovalut.ru/webmaster/xml-table.php?kod=7701

Ниже располагаются: пример содержания XML; описание формата XML; пример PHP скрипта.

Содержание XML данных выглядит так:


<?xml version="1.0" encoding="utf-8"?> <Exchange_Rates>С 12 февраля 2021 года в соответствии с уведомлением от 12 января 2021 года отключена возможность копирования курсов обмена валют с сайта kovalut.ru. Просьба перейти на другие способы получения курсов обмена валют.</Exchange_Rates>


Описание формата XML:

Actual_Rates Контейнер с банками, у которых на текущий момент есть свежая информация о курсах валют:
  Bank Контейнер с информацией о банке:
   Name Наименование банка
   Url Ссылка на информацию о банке в городе на сайте KOVALUT.RU
   USD информация о курсах доллара:
    Buy курс покупки доллара в банке
    Sell курс продажи доллара в банке
   EUR информация о курсах евро:
    Buy курс покупки евро в банке
    Sell курс продажи евро в банке
   ChangeTime Время (местное) изменения курсов банка
Not_Actual_Rates Контейнер с банками у которых на текущий момент информация о курсах валют устарела
City Контейнер с информацией о городе, для которого предоставляются курсы валют в банках:
  Name наименование города
  Url ссылка на сайт с курсами валют в городе
  Simple_Date дата курсов валют в текстовом формате
  Digital_Date дата курсов валют в цифровом формате
  USD информация о курсах доллара:
    Buy лучший курс покупки доллара в банках города
    Sell лучший курс продажи доллара в банках города
  EUR информация о курсах евро:
    Buy лучший курс покупки евро в банках города
    Sell лучший курс продажи евро в банках города
Central_Bank_RF информация о курсах валют Центрального Банка России (ЦБ):
  USD информация о курсах доллара:
    New информация о новом (последнем по времени) курсе ЦБ:
      Digital_Date дата курсов валют в цифровом формате
      Exch_Rate курс обмена ЦБ
    Old информация о старом (предпоследнем по времени) курсе ЦБ:
      Digital_Date дата курсов валют в цифровом формате
      Exch_Rate курс обмена ЦБ
  EUR информация о курсах евро:
    New информация о новом (последнем по времени) курсе ЦБ:
      Digital_Date дата курсов валют в цифровом формате
      Exch_Rate курс обмена ЦБ
    Old информация о старом (предпоследнем по времени) курсе ЦБ:
      Digital_Date дата курсов валют в цифровом формате
      Exch_Rate курс обмена ЦБ

Пример php скрипта, осуществляющего загрузку XML с сайта KOVALUT.RU и последующий вывод курсов в виде HTML таблицы:


<?php
/*
PrintXML-Table ver 1.01 от 6 февраля 2012 года
Данный скрипт загружает курсы валют банков в формате XML с сайта
КОВ.РФ и выводит их в виде HTML таблицы. При этом загрузка новых
курсов с сайта КОВ.РФ происходит с использование кэширования.
Курсы загружаются с сайта, только если время модификации файла
kov_7701.xml на Вашем сервере устарело на определенную величину
($Reload_Period). В противном случае курсы извлекаются непосредственно
из файла kovt_7701.xml. Такое кэширование ускорит загрузку Вашей страницы.

Если периодическая загрузка XML файла 'kovt_7701.xml' с сайта KOVALUT.RU будет
осуществляться сторонними средствами, то функции:
  Load_XML_From_Kov_RF()
  Get_Kov_XML()
  GetFileTime()
можно убрать из программы и еще нужно будет заменить строку:
  $Kov_XML_Str = Get_Kov_XML();
на строку:
  $Kov_XML_Str = file_get_contents('kovt_7701.xml');
*/
#Инициализируем глобальные переменные
#если Ваш сайт работает в кодировке UTF-8.
$Site_Encoding 'UTF-8';
#если Ваш сайт работает в кодировке Windows-1251.
#$Site_Encoding = 'Windows-1251';
$Kov_City_Kod '7701'#Код города на сайте KOVALUT.RU
#$Reload_Period - время в секундах, по истечении которого необходимо
#обновлять  файл kovt_7701.xml с курсами валют.
$Reload_Period 300;
#$Work_Dir - Рабочий каталог. в нем сохраняются загруженный kovt_7701.xml
$Work_Dir './';

Kov_Main();

#Kov_Main - отображает курсы валют на Вашем Сайте.
function Kov_Main()
#Загружаем XML с курсами валют в строкувую переменную $Kov_XML_Str
  
$Kov_XML_Str Get_Kov_XML();
  if (
$Kov_XML_Str
  { 
#Создаем XML элемент на основе загруженной выше строки
    
$XML = new SimpleXMLElement($Kov_XML_Str);
    
#Печатаем XML элемент, загруженный с сайта KOVALUT.RU
    
if ($XML
    { 
#Print_Kov_XML($XML);
      
PrintTableInformer($XML);
    }
  }
}

# PrintTableInformerBody - Печатает тело таблицы с курсами обмена валют
#Аргуметы
#$XML = контейнер, в котором содержаться курсы валют банков для печати
function PrintTableInformerBody($XML)
{ global 
$StyleArr$Site_Encoding;
  for (
$BI 0$BI sizeof($XML->Bank); $BI++) # Перебираем все банки города
  #для печати строк с курсами обмена валют
  
$BankName = ($Site_Encoding == 'UTF-8') ? $XML->Bank[$BI]->Name mb_convert_encoding($XML->Bank[$BI]->Name$Site_Encoding"UTF-8");
    
$BGColor = ($BI 2) ? '' " background-color: {$StyleArr['grrow']};"
    print 
"<tr align=\"center\" style = \"color: {$StyleArr['KursCol']};{$BGColor}\">\n";
    if (
$XML->Bank[$BI]->Url == '')
    { print 
"<td align=\"left\" style=\"padding-left: 5px; height: 30px;\">{$BankName}</td>\n";
    }
    else
    { print 
"<td align=\"left\" style=\"padding-left: 5px; height: 30px;\"><a style=\"color: {$StyleArr['BRefCol']};\" href=\"{$XML->Bank[$BI]->Url}\">{$BankName}</a></td>\n";
    }
    print 
"<td>{$XML->Bank[$BI]->USD->Buy}</td><td>{$XML->Bank[$BI]->USD->Sell}</td>\n";
    print 
"<td>{$XML->Bank[$BI]->EUR->Buy}</td><td>{$XML->Bank[$BI]->EUR->Sell}</td>\n";
    
#Печатаем время обновления 
    
print "<td style=\"padding-right: 5px; font-size: 12px;\">{$XML->Bank[$BI]->ChangeTime}</td>\n";
    print 
"</tr>\n";
  } 
}
                   
#PrintTableInformer печатает информер с табличкой в которой есть курсы
#всех банков города
function PrintTableInformer($XML)
{ global 
$StyleArr$Kov_City_Kod$Site_Encoding;
  if (
$Site_Encoding == 'UTF-8')
  { 
#Перекодировка не требуется. Просто загружаем переменные данными из XML
    
$CityName $XML->City->Name;
    
$CityDate $XML->City->Simple_Date;
  }
  else
  { 
#Перекодируем текстовые значения из кодировки UTF-8 в кодировку,
    #установленную на сайте:
    
$CityName mb_convert_encoding($XML->City->Name$Site_Encoding"UTF-8");
    
$CityDate mb_convert_encoding($XML->City->Simple_Date$Site_Encoding"UTF-8");
  }
  print <<<END_OF_RECORD10
<div>
<table style="border-collapse: collapse;">
 <tr>
  <td align="center" colspan="6">
   <h1 style="line-height: normal; font-style: italic; margin: 0px 0px 0px;">
{$CityName}</h1>
   
{$CityDate}
  </td>
 </tr>
 <tr> <td align="center" colspan="6">&nbsp;</td> </tr>
 <tr align="center" style="background-color: #e0e0e0;">
  <th rowspan="2">Банк</th>
  <th colspan="2">Доллар</th>
  <th colspan="2">Евро</th>
  <th rowspan="2">Время <br /> обновления</th>
 </tr>
 <tr align="center" style="background-color: #e0e0e0;">
  <th>покупка&nbsp;</th>
  <th>продажа&nbsp;</th>
  <th>покупка&nbsp;</th>
  <th>продажа&nbsp;</th>
</tr>
END_OF_RECORD10;
  
#Устанавливаем цвета в таблице для актуальных курсов
  
$StyleArr['grrow'] = '#c0c0c0'#Цвет фона нечетного столбца
  
$StyleArr['b-k'] = '#e00000'#Цвет цифр у лучших курсов
  
$StyleArr['BRefCol'] = '#00f'#Цвет ссылки на банк
  
$StyleArr['KursCol'] = '#000'#Цвет букв в строке с курсами банков
  
PrintTableInformerBody($XML->Actual_Rates); #Печатаем актуальные курсы
  
if (sizeof($XML->Not_Actual_Rates->Bank) >= 1)
  { 
#Если есть банки устаревшими курсами
    
print '<tr><th colspan="6">Ниже расположены устаревшие курсы валют:</th></tr>';
    
#Устанавливаем цвета в таблице для устаревших курсов
    
$StyleArr['grrow'] = '#e0e0e0'#Цвет фона нечетного столбца
    
$StyleArr['b-k'] = '#808080'#Цвет цифр у лучших курсов
    
$StyleArr['BRefCol'] = '#808080'#Цвет ссылки на банк
    
$StyleArr['KursCol'] = '#808080'#Цвет букв в строке с курсами банков
    #Печатаем банки с неправильной датой курсов
    
PrintTableInformerBody($XML->Not_Actual_Rates);
  }
  print 
"<tr><td colspan=\"6\" align=\"center\">Источник курсов валют: <a style = \"color: #000000;\" href=\"http://kovalut.ru/index.php?kod={$Kov_City_Kod}\">KOVALUT.RU</a></td></tr>";
  print 
"</table>\n</div>";
}

#Get_FileTime - возвращает время модификации файла если он существует.
#Возвращает 0, если файла не существует. 
function GetFileTime($filename)
{ return ((
file_exists($filename)) ? filemtime($filename) : 0);
}

#Get_Kov_XML - возвращает строку, содержащую XML c курсами валют 
#Курсы загружаются из файла kovt_7701.xml, если время модификации
#файла еще не устарело. Если время модификации файла устарело - 
#XML c курсами извлекается с сайта и сохраняется в файле kovt_7701.xml 
function Get_Kov_XML()
{ global 
$Work_Dir$Kov_City_Kod$Reload_Period;
  
$buf =''#В данную переменную будет загружен XML с курсами валют
  #Создаем переменную с именем файла, в котором будет хранится
  #XML с курсами валют:
  
$XML_File_Name "{$Work_Dir}kovt_{$Kov_City_Kod}.xml"
  
#Проверяем, устарело ли время модификации файла kovt_7701.xml.
  
if (time() > (GetFileTime($XML_File_Name) + $Reload_Period)) 
  { 
#Сразу изменяем время модификации файла, чтобы минимизировать
    #число лишних параллельных загрузок XML с сайта
    
touch($XML_File_Name);
    
#Загружаем XML c сайта KOVALUT.RU:
    
$buf Load_XML_From_Kov_RF();
    
#Проверяем, удалось ли загрузить XML с сайта:
    
if ($buf)
    { 
#Загрузить с сайта получилось. Сохраняем XML с сайта в файл
      
file_put_contents($XML_File_Name$buf);
    }  
  }
  if (!
$buf)
  { 
#XML не был загружен с сайта (или не получилось или 
    #время модификации файла kovt_7701.xml еще не устарело).
    #Загружаем XML с курсами валют из файла.
    
$buf file_get_contents($XML_File_Name);
  }
  return(
$buf);
}

#Load_XML_From_Kov_RF - возвращает строку, содержащую XML c курсами
#валют с сайта KOVALUT.RU В случае, если правильные XML данные загрузить
#не удалось - возвращается пустая строка.
function Load_XML_From_Kov_RF()
{ global 
$Kov_City_Kod;
  
$Kov_Site 'http://informer.kovalut.ru'#Адрес сайта, с которого нужно загружать xml
  #Расположение скрипта, возвращающего XML с курсами:
  
$Kov_XML_Loc '/webmaster/xml-table.php?kod='.$Kov_City_Kod;
  
#$Kov_XML_Loc = '/webmaster/getxml.php?kod='.$Kov_City_Kod;
  
$buf =''#В данную переменную будет считан XML с курсами валют 
  
$OldErrorReportLevel error_reporting(0);
  
#Открываем соединение с сайтом KOVALUT.RU по порту 80 и  таймаутом 10 секунд.
  
$buf file_get_contents($Kov_Site.$Kov_XML_Loc);
  if (!
$buf)
  { 
#Здесь можно обрабатывать ошибку, если не удалось установить
    #соединение с сайтом KOVALUT.RU.
    #echo "$errstr ($errno)<br />\n";
  

  else
  { 
#$XMLTempl - шаблон правильных XML данных.
    
$XMLTempl "\A<\\x3Fxml version=\"1.0\" encoding=\"utf-8\"\\x3F>\n<Exchange_Rates>.+?<\/Exchange_Rates>\Z";
    
#Проверяем, соответствуют ли загруженные данные - шаблону правильных XML данных
    
if (!preg_match("/$XMLTempl/is"$buf$matches))
    { 
#Не удалось загрузить правильные XML данные. Возвращаем пустую строку.
      
$buf '';
    }  
  }
  
#Восстанавливаем изначальный уровень сообщений об ошибках
  
error_reporting($OldErrorReportLevel);
  return(
$buf);
}
?>


Результатом работы данной программы будет следующее:

Москва

11 февраля 2021
 
Банк Доллар Евро Время
обновления
покупка  продажа  покупка  продажа 
Абсолют Банк 72,7074,70 88,4090,40 11.02.2021 05:23
Азиатско-Тихоокеанский Банк 73,3074,15 88,9789,86 11.02.2021 10:53
Азия-Инвест Банк 72,5074,50 88,5090,50 11.02.2021 10:23
Ак Барс Банк 73,0974,10 88,7989,81 11.02.2021 18:49
АКИБАНК 73,0074,20 88,8090,10 11.02.2021 07:00
АЛЬФА-БАНК 73,1574,65 88,7390,33 11.02.2021 03:43
АО КБ «АГРОПРОМКРЕДИТ» 71,0076,00 87,0092,00 11.02.2021 16:57
АО «РОСКОСМОСБАНК» 72,2575,05 87,9590,75 11.02.2021 17:27
БАЛАКОВО-БАНК 72,6075,30 88,5091,00 11.02.2021 07:39
Банк "Агророс" 73,5174,28 89,2189,98 11.02.2021 16:13
Банк "АКРОПОЛЬ" 73,1574,55 88,8090,40 11.02.2021 10:11
Банк «Акцепт» 73,4274,18 89,0289,98 11.02.2021 10:11
Банк "АЛЕКСАНДРОВСКИЙ" 73,2073,90 89,0589,75 11.02.2021 16:23
Банк БКФ 73,2574,35 88,9090,10 11.02.2021 10:35
Банк «ВБРР» 70,9876,22 86,6591,95 11.02.2021 18:00
Банк «Восточный» 72,5574,55 88,3590,35 11.02.2021 18:00
Банк ВТБ 71,9075,55 87,6091,25 11.02.2021 11:20
Банк «ГЛОБУС» 73,3074,30 89,1090,10 11.02.2021 14:23
Банк «ДАЛЕНА» 70,6076,60 86,3092,30 11.02.2021 17:53
Банк ЗЕНИТ 73,0574,25 88,8090,00 11.02.2021 12:00
Банк Казани 73,1674,06 88,8889,77 11.02.2021 18:30
Банк "Кубань Кредит" 71,6075,60 87,4091,40 11.02.2021 18:05
Банк «Металлург» 73,5574,10 89,2090,50 11.02.2021 17:25
Банк «Национальный стандарт» 72,9774,29 88,6090,21 11.02.2021 17:43
Банк «Новый век» 73,3573,91 88,9989,68 11.02.2021 18:57
Банк Оранжевый 72,1075,10 87,8590,85 11.02.2021 16:30
Банк Открытие 73,1073,95 88,8589,80 11.02.2021 16:19
Банк "Пойдём!" 73,0074,50 88,7590,15 11.02.2021 18:03
Банк «ПСКБ» 73,3074,40 89,0090,10 11.02.2021 09:00
Банк РСИ 73,5074,70 89,3090,50 11.02.2021 09:23
Банк Русский Стандарт 73,1074,60 88,6090,10 10.02.2021 13:53
Банк «Санкт-Петербург» 73,1074,10 88,8589,85 11.02.2021 18:29
Банк СОЮЗ 72,3574,95 88,0590,65 11.02.2021 18:13
Банк "Таврический" 70,6076,60 86,3092,30 11.02.2021 18:57
Банк «Урал ФД» 72,3074,82 88,0090,54 11.02.2021 06:07
Банк Финсервис 73,0075,00 88,5090,50 10.02.2021 11:03
Банк "ЦентроКредит" 72,1075,10 87,9090,90 11.02.2021 17:57
ББР Банк 71,9575,40 87,3591,50 11.02.2021 18:05
БКС Банк 73,3573,99 89,1089,74 11.02.2021 18:31
БыстроБанк 72,6074,60 88,3090,30 11.02.2021 18:47
ВНЕШФИНБАНК 73,4073,90 89,2089,65 11.02.2021 18:37
Газпромбанк 73,0774,39 88,7590,08 11.02.2021 11:09
Запсибкомбанк 73,0075,50 88,5091,00 10.02.2021 22:01
Заубер Банк 73,4673,94 89,2189,69 11.02.2021 18:19
Инвестиционный Банк ВЕСТА 73,4373,83 89,2389,63 11.02.2021 16:41
Инвестторгбанк 72,2075,00 88,0090,70 10.02.2021 17:33
Интерпрогрессбанк 71,3076,30 87,0092,00 11.02.2021 10:11
ИНТЕРПРОМБАНК 72,1075,10 87,9090,90 11.02.2021 16:21
ИШБАНК 72,6075,10 88,0590,95 11.02.2021 10:03
КОШЕЛЕВ-БАНК 73,3774,00 89,0089,89 11.02.2021 17:35
Крокус-Банк 73,0074,30 88,7090,30 11.02.2021 00:00
Кубаньторгбанк 73,4073,95 89,1089,75 11.02.2021 16:13
Ланта - Банк 72,1075,10 87,8590,85 11.02.2021 18:37
ЛОКО-Банк 71,7575,75 87,3591,35 11.02.2021 18:05
МБ Банк 73,0075,00 88,7090,70 11.02.2021 09:29
Металлинвестбанк 70,6076,60 86,3092,30 11.02.2021 18:00
МКБ 72,6075,60 88,4091,40 11.02.2021 17:35
Московский Индустриальный банк 72,7074,70 88,3090,50 10.02.2021 18:13
МОСКОМБАНК 71,6575,65 87,3591,35 11.02.2021 17:58
Мособлбанк 72,6074,80 88,4090,60 11.02.2021 18:03
МТС-Банк 72,1075,10 87,8090,80 11.02.2021 18:20
Нефтепромбанк 72,5075,50 88,5091,50 11.02.2021 09:29
НОВИКОМБАНК 72,2075,20 87,9090,90 11.02.2021 17:25
Норвик Банк 73,5573,82 89,2689,60 11.02.2021 18:20
НРБанк 72,3075,30 87,4591,45 10.02.2021 10:05
НС Банк 73,1774,05 88,8489,77 11.02.2021 18:03
Объединенный резервный банк 72,8074,80 88,5090,50 11.02.2021 10:09
ОТП Банк 72,5075,10 88,2090,80 11.02.2021 10:49
Плюс Банк 72,5074,50 88,5090,50 11.02.2021 17:43
Примсоцбанк 73,4074,25 89,0090,00 10.02.2021 10:43
Райффайзенбанк 71,4175,83 86,6792,07 11.02.2021 18:30
Реалист Банк 73,5173,83 89,3089,60 11.02.2021 17:45
Росбанк 71,0078,00 87,0094,00 10.02.2021 00:03
Росгосстрах Банк 73,1074,30 88,8090,00 11.02.2021 12:01
Россельхозбанк 72,8074,80 88,5090,50 11.02.2021 18:10
РОССИТА-БАНК 73,4674,30 89,0490,06 11.02.2021 14:03
РУНА-БАНК 72,7074,10 88,9090,00 11.02.2021 18:07
РУСНАРБАНК 73,2574,25 89,0090,00 11.02.2021 16:50
РФИ БАНК 73,4574,90 88,8091,00 11.02.2021 10:03
СДМ-БАНК 69,6077,60 85,3093,30 11.02.2021 17:59
СЕВЕРГАЗБАНК 72,3075,30 88,0091,00 11.02.2021 00:03
Северный Народный Банк 72,9075,80 88,0091,00 11.02.2021 10:03
СКБ-банк 73,0574,62 88,7390,34 11.02.2021 08:55
СМП Банк 72,4074,70 88,2090,50 11.02.2021 18:01
Солид Банк 72,6074,60 88,3090,30 11.02.2021 16:43
Тексбанк 73,1074,50 88,7090,10 11.02.2021 18:03
Тимер Банк 73,4173,95 89,1889,78 11.02.2021 16:21
Транскапиталбанк 72,2075,00 88,0090,70 10.02.2021 17:33
Трансстройбанк 73,2573,85 89,0589,65 11.02.2021 17:05
УБРиР 73,1074,00 88,8389,83 11.02.2021 16:43
Углеметбанк 72,0075,50 87,8091,30 11.02.2021 17:23
ФОРА-БАНК 73,2074,10 88,9089,85 11.02.2021 16:30
ФорБанк 73,0074,30 88,6089,90 10.02.2021 17:33
ФФИН Банк 72,1075,10 87,8090,80 11.02.2021 18:00
Экспобанк 71,7775,77 87,4591,45 11.02.2021 09:23
ЮниКредит Банк 66,8880,39 81,8396,86 11.02.2021 18:41
Ниже расположены устаревшие курсы валют:
Автоградбанк 73,6074,20 89,2090,00 11.02.2021 10:27
БАНК «МОСКВА-СИТИ» 73,6074,30 89,3089,90 11.02.2021 09:29
БАНК НБС 73,4074,00 89,3589,80 11.02.2021 16:47
Банк "Ноосфера" 75,7076,30 90,9091,75 04.02.2021 05:12
Банк «Форштадт» 73,7574,65 89,4090,30 11.02.2021 14:57
ПромТрансБанк 73,6074,20 89,3590,05 11.02.2021 15:39
Сбербанк России 72,7475,55 88,1391,08 09.02.2021 06:15
Источник курсов валют: KOVALUT.RU