Сергей Лим

Сергей Лим

С нами с 24 мая 2015; Место в рейтинге пользователей: #60
25 июня 2015, 01:57
1
0
К сожалению у этого компонента нету истории изменения курса. На данный момент пользуюсь вот этим скриптом

function get_rate($currency) {

$date = getdate();  // получаем ассоциативный массив с данными по дате

$day_of_the_week = $date['wday']; // день недели

    //расчет коэффициента смещения
    switch ($day_of_the_week) {
    case 0:  $k1 = 2 ;  $k2 = 1;  break;   // воскресенье
    case 1:  $k1 = 3 ;  $k2 = 2;  break;   // понедельник
    case 2:  $k1 = 3 ;  $k2 = 0;  break;  // вторник
    default: $k1 = 1 ;  $k2 = 0;  break;   // среда, четверг, пятница, суббота
    }

$month = $date['mon'] ;    // месяц
$day = $date['mday'] ;     // число сегодня
$yesterday = $day - $k1 ;  // число для получения курса на предыдущий день
$today = $day - $k2 ;      // число для получения курса на сегодня
$year = $date['year'] ;    // год


$date_yesterday = date("d/m/Y", mktime(0, 0, 0, $month, $yesterday, $year )); // Генерация даты для курса предыдущего дня
$date_today = date("d/m/Y", mktime(0, 0, 0, $month, $today, $year )); // Генерация даты для курса на сегодня

$rate = array() ;

foreach($currency as $key => $value) {
$url = 'http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.$date_yesterday.'&date_req2='.$date_today.'&VAL_NM_RQ='.$value ;
$xml = simplexml_load_file($url);
$rate_today = round(str_replace(',','.',$xml->Record[1]->Value), 2);
$rate_yesterday = round(str_replace(',','.',$xml->Record[0]->Value), 2);
$range = round($rate_today - $rate_yesterday, 2) ;

if ($range > 0) {
$range = '+' . $range;
$img = 'up' ;
} elseif ($range == 0) {
$range = 0 ;
$img = 0 ;
} else {
$img = 'down' ;
}

$rate[$key] = array(
 'today' => $rate_today,
 'change' => $range,
 'img' => $img
);

}

return $rate ;

}



$currency = array(
'dollar' => 'R01235',
'euro' => 'R01239'
);

$rate = get_rate($currency);

foreach ($rate as $key => $value) { ?>

<div class="valuta-logo"><img src="/assets/images/valuta/<?php echo $key; ?>.png" alt="" /></div>

<strong><?php echo $value['today']; ?></strong>

<?php if($value['change']) { ?>

<img src="/assets/images/valuta/<?php echo $value['img']; ?>.png" alt="" /> <?php echo $value['change']; ?>

<?php } ?>

<div style="clear: both"></div>

<?php }

Скажите, насколько он кривой? И я так понимаю, что надо сделать кэшируемость + крон? Я просто в пхп только начинаю разбираться. Автор если направишь меня в нужное направление, то хотел бы помочь усовершенствовать твой компонент на основе этого. Я знаю, что ты это сам можешь, но я хотел бы научиться)
24 июня 2015, 17:08
0
Спасибо, проблема решена
24 июня 2015, 16:46
0
При обновлении возникла ошибка, я его удалил, сейчас пробую заного установить, говорит: Произошла ошибка при подключении к поставщику:
24 мая 2015, 17:34
0
Чтоб было не USD-49,5935 а USD-49,59
24 мая 2015, 10:45
0
Подскажите:
* как сделать округление до сотых, десятых\
* как реализовать пункт изменение курса по сравнению с предыдущим днем?