Помощь Валюта плюс, брать курс с НБУ

CrazYViruS

Создатель
Регистрация
14 Май 2013
Сообщения
33
Реакции
0
Доброго времени всем !
В следствии отвала прежнего источника курса валют, появилась идея брать напрямую курс с НБУ через ихний xml но есть проблема.
1. В xml НБУ нету строк номинала, там по умолчанию к 1 все сравнивается.
Пример:
Код:
<currency>
<r030>978</r030>
<txt>Євро</txt>
<rate>29.6351</rate>
<cc>EUR</cc>
<exchangedate>16.04.2020</exchangedate>
</currency>
2. А вот собственно код Валюта плюс который и отвечает за парсинг:
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...

Вообщем помогите.
 
Назад
Сверху