RateSource = 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'; parent::__construct(); } function GetRatesData() { $xml_parser = xml_parser_create(); /** @var kCurlHelper $curl_helper */ $curl_helper = $this->Application->recallObject('CurlHelper'); $curl_helper->followLocation = true; $xml = $curl_helper->Send($this->RateSource); if ( !$curl_helper->isGoodResponseCode() || strlen($xml) == 0 ) { return; } 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 ( !isset($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; } }