Вы можете разместить на своем сайте таблицу с курсами обмена валют в банках вашего города. Сайт KOVALUT.RU предлагает данные в формате XML о курсах валют в банках Называевска и курсах валют Центрального Банка России (ЦБ).
Внимание! Использование информации, представленной в XML формате, допускается только при условии, что непосредственно над или под блоком с информацией о курсах валют на вашей странице будет указана ссылка на источник информации. Гиперссылка должна указывать на страницу сайта KOVALUT.RU с курсами валют в Называевске:
https://kovalut.ru/kurs/nazyvaevsk/
Загрузить таблицу с курсами валют в банках Называевска в формате XML можно с адреса:
https://informer.kovalut.ru/webmaster/xml-table.php?kod=5504
Ниже располагаются: пример содержания XML; описание формата XML; пример PHP скрипта.
Содержание XML данных выглядит так:
<?xml version="1.0" encoding="utf-8"?> <Exchange_Rates>С 12 февраля 2021 года в соответствии с уведомлением от 12 января 2021 года отключена возможность копирования курсов обмена валют с сайта kovalut.ru. Просьба перейти на другие способы получения курсов обмена валют.</Exchange_Rates>
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
/*
PrintXML-Table ver 1.01 от 6 февраля 2012 года
Данный скрипт загружает курсы валют банков в формате XML с сайта
КОВ.РФ и выводит их в виде HTML таблицы. При этом загрузка новых
курсов с сайта КОВ.РФ происходит с использование кэширования.
Курсы загружаются с сайта, только если время модификации файла
kov_5504.xml на Вашем сервере устарело на определенную величину
($Reload_Period). В противном случае курсы извлекаются непосредственно
из файла kovt_5504.xml. Такое кэширование ускорит загрузку Вашей страницы.
Если периодическая загрузка XML файла 'kovt_5504.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_5504.xml');
*/
#Инициализируем глобальные переменные
#если Ваш сайт работает в кодировке UTF-8.
$Site_Encoding = 'UTF-8';
#если Ваш сайт работает в кодировке Windows-1251.
#$Site_Encoding = 'Windows-1251';
$Kov_City_Kod = '5504'; #Код города на сайте KOVALUT.RU
#$Reload_Period - время в секундах, по истечении которого необходимо
#обновлять файл kovt_5504.xml с курсами валют.
$Reload_Period = 300;
#$Work_Dir - Рабочий каталог. в нем сохраняются загруженный kovt_5504.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"> </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>покупка </th>
<th>продажа </th>
<th>покупка </th>
<th>продажа </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_5504.xml, если время модификации
#файла еще не устарело. Если время модификации файла устарело -
#XML c курсами извлекается с сайта и сохраняется в файле kovt_5504.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_5504.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_5504.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);
}
?>
Называевск28 января 2021 |
|||||
Банк | Доллар | Евро | Время обновления |
||
---|---|---|---|---|---|
покупка | продажа | покупка | продажа | ||
Сбербанк России | 73,92 | 77,74 | 89,86 | 93,74 | 28.01.2021 12:53 |
Источник курсов валют: KOVALUT.RU |