Изменение курсов валют через cron для Украины с сайта ПриватБанк

#
Изменение курсов валют через cron для Украины с сайта ПриватБанк
В файле /cron/update_currency.php

<?php

/**
* Обновление валют на текущий день по курсу ПриватБанк и НБУ для Украины.
* Внимание! Текущей валютой должен быть установлена гривна с коэффициентом пересчета 1.
* Так как валют не много с циклами и массивами не заворачивался! просто віполнил действие 4 раза ))
*/

require_once(dirname(__FILE__) . '/../' . 'bootstrap.php');

setlocale(LC_NUMERIC, 'POSIX');

$url = 'https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=5'; //приватбанк наличный
$xml = simplexml_load_file($url);
$rur_s = (string)$xml->row[0]->exchangerate->attributes()->sale; //рубль продажа
$eur_s = (string)$xml->row[1]->exchangerate->attributes()->sale; //евро
$usd_s = (string)$xml->row[2]->exchangerate->attributes()->sale; //доллар

$rur = (string)$xml->row[0]->exchangerate->attributes()->ccy; //код валюты RUR
$eur = (string)$xml->row[1]->exchangerate->attributes()->ccy;
$usd = (string)$xml->row[2]->exchangerate->attributes()->ccy;

$url = 'https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=3'; //НБУ
$xml_nbu = simplexml_load_file($url);
$rur_s_nbu = (string)$xml_nbu->row[0]->exchangerate->attributes()->sale; //рубль продажа
$eur_s_nbu = (string)$xml_nbu->row[1]->exchangerate->attributes()->sale;
$usd_s_nbu = (string)$xml_nbu->row[2]->exchangerate->attributes()->sale;
/*   второй раз код валюты не нужет, т.к. не может быть 2 валюты с одинаковым кодом, в админке создаем валюту и присваеваем код
например: USD - UNB доллар нацбанк
          EUR - ENB евро нацбанк
$rur_nbu = (string)$xml_nbu->row[0]->exchangerate->attributes()->ccy; //код валюты RUR
$eur_nbu = (string)$xml_nbu->row[1]->exchangerate->attributes()->ccy;
$usd_nbu = (string)$xml_nbu->row[2]->exchangerate->attributes()->ccy;*/
if (is_object($xml) && is_object($xml_nbu))
{      // приватбанк наличный
      $CharCode = strval($usd);
      $oCurrency = Core_Entity::factory('Shop_Currency')->getByCode($CharCode);
      if (!is_null($oCurrency))
      {
         $iNominal = intval(1); //коэффициент пересчета = 1, хотя это не обязательный параметр
         $Value = floatval(str_replace(',', '.', strval($usd_s)) / $iNominal);
         $oCurrency->exchange_rate = $Value;
         $oCurrency->save();         
         echo "Updated currency {$CharCode} = {$Value}; \n";
      }
   $CharCode = strval($eur);
      $oCurrency = Core_Entity::factory('Shop_Currency')->getByCode($CharCode);
      if (!is_null($oCurrency))
      {
         $iNominal = intval(1);
         $Value = floatval(str_replace(',', '.', strval($eur_s)) / $iNominal);
         $oCurrency->exchange_rate = $Value;
         $oCurrency->save();         
         echo "{$CharCode} = {$Value}; \n";
      }
   // НБУ   
      $CharCode = strval('UNB');
      $oCurrency = Core_Entity::factory('Shop_Currency')->getByCode($CharCode);
      if (!is_null($oCurrency))
      {
         $iNominal = intval(1);
         $Value = floatval(str_replace(',', '.', strval($usd_s_nbu)) / $iNominal);
         $oCurrency->exchange_rate = $Value;
         $oCurrency->save();         
         echo "{$CharCode} = {$Value}; \n";
      }
   $CharCode = strval('ENB');
      $oCurrency = Core_Entity::factory('Shop_Currency')->getByCode($CharCode);
      if (!is_null($oCurrency))
      {
         $iNominal = intval(1);
         $Value = floatval(str_replace(',', '.', strval($eur_s_nbu)) / $iNominal);
         $oCurrency->exchange_rate = $Value;
         $oCurrency->save();         
         echo "{$CharCode} = {$Value}; \n";
      }
}
else {echo "Что то пошло не так!";}
Авторизация