CrazYViruS
Создатель
- Регистрация
- 14 Май 2013
- Сообщения
- 33
- Реакции
- 0
- Автор темы
- #1
Доброго времени всем !
В следствии отвала прежнего источника курса валют, появилась идея брать напрямую курс с НБУ через ихний xml но есть проблема.
1. В xml НБУ нету строк номинала, там по умолчанию к 1 все сравнивается.
Пример:
2. А вот собственно код Валюта плюс который и отвечает за парсинг:
Вся беда тут:
Вообщем помогите.
В следствии отвала прежнего источника курса валют, появилась идея брать напрямую курс с НБУ через ихний xml но есть проблема.
1. В xml НБУ нету строк номинала, там по умолчанию к 1 все сравнивается.
Пример:
Код:
<currency>
<r030>978</r030>
<txt>Євро</txt>
<rate>29.6351</rate>
<cc>EUR</cc>
<exchangedate>16.04.2020</exchangedate>
</currency>
PHP:
private function getCourse($source = 'RUB') {
//echo $source;
if ($source == 'RUB' or $source == 'RUR') {
$Request = "http://www.cbr.ru/scripts/XML_daily.asp";
$arr = array('title' => 'CharCode', 'nominal' => 'Nominal', 'value' => 'Value');
}
elseif ($source == 'KZT') {
$Request = "http://www.nationalbank.kz/rss/rates_all.xml";
$arr = array('title' => 'title', 'nominal' => 'quant', 'value' => 'description');
}
elseif ($source == 'UAH') {
$Request = "https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange";
$arr = array('title' => 'cc', 'nominal' => ' ', 'value' => 'rate');
//$Request = "http://bank-ua.com/export/currrate.xml";
//$arr = array('title' => 'char3', 'nominal' => 'size', 'value' => 'rate');
//$Request = "http://pfsoft.com.ua/service/currency/";
//$arr = array('title' => 'CharCode', 'nominal' => 'Nominal', 'value' => 'Value');
}
elseif ($source == 'BYR') {
$Request = "http://www.nbrb.by/Services/XmlExRates.aspx";
$arr = array('title' => 'CharCode', 'nominal' => 'Scale', 'value' => 'Rate');
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $Request);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$Response = curl_exec($curl);
//print_r($Response);
curl_close($curl);
$reader = new XMLReader();
//$reader->open($Request);
$arr_base_res = array();
if ($Response) {
$reader->xml($Response);
while ($reader->read()) {
switch ($reader->nodeType) {
case (XMLREADER::ELEMENT):
if ( $reader->localName == $arr['title']) {
$reader->read();
$local_name = $reader->value;
}
elseif ( $reader->localName == $arr['nominal']) {
$reader->read();
$local_nominal = $reader->value;
$arr_nominal[$local_name] = $local_nominal;
}
elseif ( $reader->localName == $arr['value']) {
$reader->read();
$value = $reader->value;
Вся беда тут:
PHP:
$arr = array('title' => 'cc', 'nominal' => ' ', 'value' => 'rate');
Не против присвоить статическое значение 'nominal'
Но как если это ключ и оно сразу лезет искать в xml...
Вообщем помогите.