Курс доллара

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

gladskoy
Сообщения: 34
Зарегистрирован: Вс мар 15, 2015 9:36 am
Откуда: Stavropol
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Курс доллара

Сообщение gladskoy » Сб дек 19, 2015 8:55 am

кто поможет?
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Курс доллара

Сообщение Amarok » Сб дек 19, 2015 4:17 pm

Код: Выделить всё

$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y".rand()));
 
За это сообщение автора Amarok поблагодарил:
gladskoy (Сб дек 19, 2015 8:38 pm)
Рейтинг: 1.16%
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
gladskoy
Сообщения: 34
Зарегистрирован: Вс мар 15, 2015 9:36 am
Откуда: Stavropol
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Курс доллара

Сообщение gladskoy » Сб дек 19, 2015 10:12 pm

а еще вопрос как проще иконки доллара и евро закинуть на малину?
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Курс доллара

Сообщение olehs » Вс дек 20, 2015 12:18 am

chip писал(а):ребят, подскажите, с проблемой:

набросал скриптик для оф курса:

Код: Выделить всё

$s = file_get_contents('http://bank.gov.ua/NBUStatService/v1/statdirectory?exchange&json');

$json = json_decode($s);

$rates = array(
 'USD'=>null,
 'EUR'=>null,
 'RUB'=>null
);
foreach ($json as $currency){
 if (array_key_exists($currency->cc, $rates)){
     $rates[$currency->cc] = round($currency->rate, 2);
 }
}

sg("nbu.USD",$rates['USD']);
sg("nbu.EUR",$rates['EUR']);
sg("nbu.RUB",$rates['RUB']);
Но странные глюки есть, стоит в onNewHour на выполнения каждые 4-е часа (if (!($h%4)) {callMethod("nbu.update");} // обновим курс валюты каждые 4 часа), но иногда значения просто пропадают, что интересно, иногда и при ручном запуске скрипта из настроек, после нажатия "выполнить" - страница пытается обновится минуты 2-е (при чём ни на одну страницу МДМ в этот момент не пускает, как-будто думает), потом отпускает и при повторном нажатии выполнить - всё работает дальше.

ошибок в логах нет...
Это тупит сервис НБУ. Перешел по ссылке. Из трех раз два раза страница ушла в Gateway Timeout
chip
Сообщения: 158
Зарегистрирован: Пн ноя 09, 2015 11:03 pm
Благодарил (а): 43 раза
Поблагодарили: 7 раз

Re: Курс доллара

Сообщение chip » Чт дек 24, 2015 3:00 pm

olehs писал(а): Это тупит сервис НБУ. Перешел по ссылке. Из трех раз два раза страница ушла в Gateway Timeout
Подскажите, как поставить проверку на получение значений, и в случае их отсутствия, что бы скрипт обрабатывался повторно?

ЗЫ и как заставить скрипт (в том же oneminutes) выполняться не раз в минуту а каждые 10-20-30 минут?

Спасибо
kawkay
Сообщения: 53
Зарегистрирован: Вс апр 19, 2015 6:10 pm
Благодарил (а): 83 раза
Поблагодарили: 13 раз

Re: Курс доллара

Сообщение kawkay » Пт дек 25, 2015 2:32 pm

// Каждые 30 минут
if ($m%30 == 0) {
callMethod('cbr.update'); // обновляем курсы
say('Обновлены курсы валют');
gladskoy
Сообщения: 34
Зарегистрирован: Вс мар 15, 2015 9:36 am
Откуда: Stavropol
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Курс доллара

Сообщение gladskoy » Пт дек 25, 2015 9:04 pm

kawkay писал(а):// Каждые 30 минут
if ($m%30 == 0) {
callMethod('cbr.update'); // обновляем курсы
say('Обновлены курсы валют');
что то не так

ругается

Код: Выделить всё

Parse error: syntax error, unexpected 'echo' (T_ECHO) in /var/www/cached/fafe4483900e2737bb025eded665ec2e.php on line 5
chip
Сообщения: 158
Зарегистрирован: Пн ноя 09, 2015 11:03 pm
Благодарил (а): 43 раза
Поблагодарили: 7 раз

Re: Курс доллара

Сообщение chip » Сб дек 26, 2015 1:29 pm

Скобка не закрыта }

if ($m%30 == 0) {callMethod('cbr.update');}
redmax144
Сообщения: 44
Зарегистрирован: Чт янв 28, 2016 8:18 pm
Благодарил (а): 13 раз
Поблагодарили: 5 раз

Re: Курс доллара

Сообщение redmax144 » Вс фев 14, 2016 6:04 pm

Может кому пригодится, набросал по аналогии метод обновления курсов валют для РБ. Данные берутся из файла XML nbrb.by
СпойлерПоказать
$file = simplexml_load_file("http://www.nbrb.by/Services/XmlExRates. ... ate("m/d/Y"));
if (!$file){
DebMes("CBR error");
return;
}

// USD
$xml = $file->xpath("//Currency[@Id='145']");
$valute = strval($xml[0]->Rate);
$this->setProperty('USD', round(str_replace(",",".",$valute)*100)/100);

// EURO
$xml = $file->xpath("//Currency[@Id='19']");
$valute = strval($xml[0]->Rate);
$this->setProperty('EUR', round(str_replace(",",".",$valute)*100)/100);

// RUB
$xml = $file->xpath("//Currency[@Id='190']");
$valute = strval($xml[0]->Rate);
$this->setProperty('RUB', round(str_replace(",",".",$valute)*100)/100);

$this->setProperty("uptime",date("d.m.Y - H:i:s",time()));
$this->setProperty("updatedTimestamp",time());
$sayMetUSD = gg ("Sets.sayMetUSD");
if ($sayMetUSD) {
say ("Обновлены курсы валют",($sayMetUSD-2));
}
flair
Сообщения: 198
Зарегистрирован: Сб янв 16, 2016 12:18 am
Откуда: Минск
Благодарил (а): 16 раз
Поблагодарили: 15 раз

Re: Курс доллара

Сообщение flair » Вс фев 14, 2016 7:56 pm

redmax144 писал(а):Может кому пригодится, набросал по аналогии метод обновления курсов валют для РБ. Данные берутся из файла XML nbrb.by
СпойлерПоказать
$file = simplexml_load_file("http://www.nbrb.by/Services/XmlExRates. ... ate("m/d/Y"));
if (!$file){
DebMes("CBR error");
return;
}

// USD
$xml = $file->xpath("//Currency[@Id='145']");
$valute = strval($xml[0]->Rate);
$this->setProperty('USD', round(str_replace(",",".",$valute)*100)/100);

// EURO
$xml = $file->xpath("//Currency[@Id='19']");
$valute = strval($xml[0]->Rate);
$this->setProperty('EUR', round(str_replace(",",".",$valute)*100)/100);

// RUB
$xml = $file->xpath("//Currency[@Id='190']");
$valute = strval($xml[0]->Rate);
$this->setProperty('RUB', round(str_replace(",",".",$valute)*100)/100);

$this->setProperty("uptime",date("d.m.Y - H:i:s",time()));
$this->setProperty("updatedTimestamp",time());
$sayMetUSD = gg ("Sets.sayMetUSD");
if ($sayMetUSD) {
say ("Обновлены курсы валют",($sayMetUSD-2));
}
еще бы для полноты картины - написали какие куда объекты свойства добавить и как скрипт запустить - было бы вообще огонь. так сказать инструкция для шапки.
Ответить