- Автор темы
- #1
Добрый день.
+ 1) Расскажите, как добавить валюту, например UAH
+ 2) Расскажите, как изменить валюту по умолчанию, т.е. чтобы гривна была основной
+ 3) Как добиться мультивалютности? т.е. некого функционала схожего с demo.opencart.com (опенкартом) когда по нажатию на валюту она пересчитывается автоматически в валюту платежа (удобную пользователю)?
Осталось:
4) Как в платежные системы, ввести оплату на "соответствующий кошелек" с соответствующей валютой платежа?
Еще назрел один вопрос, каким образом интегрировать Я.Кассу (Для просмотра ссылки Войдиили Зарегистрируйся) в платежные системы, может есть наработки?
С мультивалютностью и новой валютой разобрался, только не ясно как подгрузить курсы из Для просмотра ссылки Войдиили Зарегистрируйся
function get_central_bank_rates($xml_file_url)
Непонятно как работает, отдельно запустить не удалось.
Сделано! Чувствительность к регистру XML
+ 1) Расскажите, как добавить валюту, например UAH
+ 2) Расскажите, как изменить валюту по умолчанию, т.е. чтобы гривна была основной
+ 3) Как добиться мультивалютности? т.е. некого функционала схожего с demo.opencart.com (опенкартом) когда по нажатию на валюту она пересчитывается автоматически в валюту платежа (удобную пользователю)?
Осталось:
4) Как в платежные системы, ввести оплату на "соответствующий кошелек" с соответствующей валютой платежа?
Еще назрел один вопрос, каким образом интегрировать Я.Кассу (Для просмотра ссылки Войди
С мультивалютностью и новой валютой разобрался, только не ясно как подгрузить курсы из Для просмотра ссылки Войди
function get_central_bank_rates($xml_file_url)
Непонятно как работает, отдельно запустить не удалось.
Код:
<?php
include "inc/domxml-php4-to-php5.php";
$xml_file_url = "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=09/14/15";
/**
* Функция получает значения курса валют с сайта НБРБ и выдает нужные параметры в виде массива
*
* @param string $xml_file_url - URL адрес страницы
* @return mixed массив с данными или false
*/
function get_central_bank_rates($xml_file_url)
{
// Загрузим XML валют.
$content = file_get_contents($xml_file_url);
//$content = iconv('windows-1251', 'UTF-8', $content);
$xml = domxml_open_mem($content);
if (!$xml)
{
return false;
}
// Получаем верхний узел.
$child_nodes = $xml->child_nodes();
if (count($child_nodes) == 0)
{
return false;
}
$xml = $child_nodes[0];
// Получим список узлов валют.
$child_nodes = $xml->child_nodes();
if (!$child_nodes)
{
return false;
}
$result = array();
// Ищем интересующие нас курсы.
foreach ($child_nodes as $xml)
{
$sub_nodes = $xml->child_nodes();
//print_r($sub_nodes);
if (!$sub_nodes)
{
continue;
}
// Ищем название валюты.
$currency_name = '';
foreach ($sub_nodes as $node)
{
$node_name = trim(strtolower($node->node_name()));
if ($node_name != 'CharCode')
{
continue;
}
// Извлекаем значение.
$value_nodes = $node->child_nodes();
foreach ($value_nodes as $value_node)
{
if ($value_node->node_type() == XML_TEXT_NODE)
{
$currency_name .= trim(strtolower($value_node->node_value()));
}
}
}
if (empty($currency_name))
{
continue;
}
$value = '';
reset($sub_nodes);
foreach ($sub_nodes as $node)
{
$node_name = strtolower($node->node_name());
if ($node_name != 'Rate')
{
continue;
}
// Извлекаем значение.
$value_nodes = $node->child_nodes();
foreach ($value_nodes as $value_node)
{
if ($value_node->node_type() == XML_TEXT_NODE)
{
$value .= strtolower($value_node->node_value());
}
}
}
// Заменяем запятую на точку и преобразуем в вещественное число.
$value = str_replace(',', '.', $value);
$value = floatval($value);
if (!$value)
{
continue;
}
// Добавим валюту.
switch ($currency_name)
{
case 'rur':
{
$result['BYR/RUR'] = $value;
break;
}
case 'usd':
{
$result['USD/BYR'] = $value;
break;
}
case 'eur':
{
$result['EUR/BYR'] = $value;
}
}
}
if (count($result))
{
// Произведем дополнительные расчеты между иностранными валютами.
if (isset($result['USD/BYR']) && isset($result['EUR/BYR']))
{
$result['EUR/USD'] = round($result['EUR/BYR'] / $result['USD/BYR'], 4);
}
return $result;
}
else
{
return false;
}
}
echo "<a href='$xml_file_url'>$xml_file_url</a>";
echo "<br>";
echo "**** Curs **** <br>";
echo get_central_bank_rates($xml_file_url);
var_dump(get_central_bank_rates($xml_file_url));
?>
Сделано! Чувствительность к регистру XML
Последнее редактирование модератором: