RateSource = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml'; parent::__construct(); } function GetRatesData() { $xml_parser = xml_parser_create(); /** @var kCurlHelper $curl_helper */ $curl_helper = $this->Application->recallObject('CurlHelper'); $xml = $curl_helper->Send($this->RateSource); xml_parse_into_struct($xml_parser, $xml, $struct, $index); $data_res = Array(); foreach($struct as $element) { if(isset($element['attributes']) && isset($element['attributes']['CURRENCY'])) { $currency = $element['attributes']['CURRENCY']; $data_res[$currency]['ID'] = $currency; $data_res[$currency]['TARGET'] = 'EUR'; $data_res[$currency]['UNITS'] = 1; $data_res[$currency]['RATE'] = ($element['attributes']['RATE'] == 0) ? 0 : 1 / $element['attributes']['RATE']; } } if(!$data_res['EUR']) { $data_res['EUR']['ID'] = 'EUR'; $data_res['EUR']['UNITS'] = 1; $data_res['EUR']['TARGET'] = 'EUR'; $data_res['EUR']['RATE'] = 1; } $this->ExchangeRates = $data_res; } }