Страница 11 из 20
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Вс дек 24, 2017 5:35 pm
Gelezako
ахах, а я подумал что добавление иконки хорошая идея )
надеюсь добавленный значок валюты на самой странице возле цифр не режет?
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Вс дек 24, 2017 6:15 pm
nick7zmail
В самом модуле - пофигу)) Может даже и красивее стало...а вот в названии...ну не...во первых выбивается из общего стиля панели управления, во-вторых ascii иконки не самые красивые я б сказал...но даже если воткнуть бутстраповскую иконку - ну не...не то...всё таки панель управления строгой должна быть...а то сперва иконки, потом буквы разноцветные в названии, рамки всякие, анимации...кто на что горазд...потом зайти туда страшно будет)))
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Вс дек 24, 2017 6:20 pm
Gelezako
ну ок, убираю из названия, желание пользователя - закон )
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Чт янв 25, 2018 7:20 pm
dioxin
Тащу доллар и евро на сегодня-завтра с центробанка:
Код: Выделить всё
$data=date("d/m/Y");
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$data);
sg("cbr.uptime", $data); // кидаем сегодняшнюю дату
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg('cbr.dollar', $dollar);
$dollar = substr($dollar,0,-2);
$dollar1 = $dollar;
$format='mini';
$dollar = priceToRublesAndKopeck($dollar, $format);
sg("cbr.USD", $dollar); //кидаем курс доллара
$format='full';
$dollar1 = priceToRublesAndKopeck($dollar1, $format);
sg("cbr.USD_full", $dollar1); //кидаем курс доллара для алисы
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg('cbr.evrik', $euro);
$euro = substr($euro,0,-2);
$euro1 = $euro;
$format='mini';
$euro = priceToRublesAndKopeck($euro, $format);
sg("cbr.EURO",$euro); //кидаем курс евро
$format='full';
$euro1 = priceToRublesAndKopeck($euro1, $format);
sg("cbr.EURO_full", $euro1); //кидаем курс евро для алисы
// Получаем курс на завтра
$data1 = strtotime("+1 day");
$data1 = date("d/m/Y", $data1);
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$data1);
sg("cbr.uptime1", $data1); //кидаем завтравшнюю дату
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg('cbr.dollar_zavtra',$dollar);
$dollar = substr($dollar,0,-2);
$format='mini';
$dollar = priceToRublesAndKopeck($dollar, $format);
sg("cbr.USD1", $dollar); //кидаем курс доллара на завтра
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg('cbr.evrik_zavtra',$euro);
$euro = substr($euro,0,-2);
$format='mini';
$euro = priceToRublesAndKopeck($euro, $format);
sg("cbr.EURO1",$euro); //кидаем курс евро на завтра
$raz_euro = (gg('cbr.evrik_zavtra')-gg('cbr.evrik'));
$raz_dollar = (gg('cbr.dollar_zavtra')-gg('cbr.dollar'));
if (stristr($raz_dollar,'-') === FALSE) {$raz_dollar = '+'.$raz_dollar;}
if (stristr($raz_euro,'-') === FALSE) {$raz_euro = '+'.$raz_euro;}
$raz_dollar = substr($raz_dollar,0,5);
$raz_euro = substr($raz_euro,0,5);
sg('cbr.raz_dollar',$raz_dollar);
sg('cbr.raz_euro',$raz_euro);
function priceToRublesAndKopeck($price, $format) {
if ($format == 'mini') {
$rub_u = " р."; $kop_u = " к.";
}
if ($format == 'medium') {
$rub_u = " руб."; $kop_u = " коп.";
}
if ($format == 'full') {
$rub_u = " рублей"; $kop_u = " копеек";
}
if ($price != 0) {
$point = strpos($price, '.');
// Отделяем рубли от копеек
if ( !empty($point) ) {
$rub = substr($price, 0, $point);
$kop = substr($price, $point + 1);
}
// Формируем строку
if ($rub == 0) $result = $kop.$kop_u;
else $result = $rub.$rub_u." ".$kop.$kop_u;
// Возвращаем результат
return $result;
}
else {
$result = "0".$rub_u." 0".$kop_u;
return $result;
}}
Ну и криптовалюту тоже вывожу:
Код: Выделить всё
//==========Биткоин=====
$result = shell_exec("/usr/bin/curl https://api.coindesk.com/v1/bpi/currentprice/USD.json");
$result = json_decode($result,true);
$price = sprintf("%.2f",$result["bpi"]["USD"]["rate_float"]);
sg('ESP82660014aa2b.btc_of',$price);
$result = shell_exec("/usr/bin/curl https://api.exmo.com/v1/ticker/");
$result = json_decode($result,true);
$price = sprintf("%.2f",$result[BTC_USD][buy_price]);
$timen = date('H:i',$result[BTC_USD][updated]);
sg('ESP82660014aa2b.time_btc',$timen);
sg('ESP82660014aa2b.btc',$price);
//==========Рипл=====
$price = sprintf("%.2f",$result[XRP_USD][buy_price]);
$timen = date('H:i',$result[XRP_USD][updated]);
sg('ESP82660014aa2b.time_xrp',$timen);
sg('ESP82660014aa2b.xrp',$price);
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Пт янв 26, 2018 11:42 am
webms
dioxin, спасибо большое, то что надо!
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Сб янв 27, 2018 8:54 am
Amarok
dioxin писал(а):Ну и криптовалюту тоже вывожу:
Код: Выделить всё
$result = shell_exec("/usr/bin/curl https://api.exmo.com/v1/ticker/");
sg('ESP82660014aa2b.btc',$price);
А роскомнадзор exmo.com - забанил.
И, да, а каким образом ESP в майнинге учавствует?
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Вс янв 28, 2018 6:17 pm
dioxin
Amarok писал(а):dioxin писал(а):Ну и криптовалюту тоже вывожу:
Код: Выделить всё
$result = shell_exec("/usr/bin/curl https://api.exmo.com/v1/ticker/");
sg('ESP82660014aa2b.btc',$price);
А роскомнадзор exmo.com - забанил.
И, да, а каким образом ESP в майнинге учавствует?
Строку $result = shell_exec("/usr/bin/curl
https://api.exmo.com/v1/ticker/"); заменить на $result = shell_exec("/usr/bin/curl
https://api.exmo.me/v1/ticker/");
Это если будут проблемы с доступом, а так вроде домен третьего уровня api.exmo.com не забанен.
Кто про майнинг тут чего сказал?
Тут про получение курсов валют тема.
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Ср мар 21, 2018 5:05 pm
webms
dioxin писал(а):Тащу доллар и евро на сегодня-завтра с центробанка:
Код: Выделить всё
$data=date("d/m/Y");
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$data);
sg("cbr.uptime", $data); // кидаем сегодняшнюю дату
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg('cbr.dollar', $dollar);
$dollar = substr($dollar,0,-2);
$dollar1 = $dollar;
$format='mini';
$dollar = priceToRublesAndKopeck($dollar, $format);
sg("cbr.USD", $dollar); //кидаем курс доллара
$format='full';
$dollar1 = priceToRublesAndKopeck($dollar1, $format);
sg("cbr.USD_full", $dollar1); //кидаем курс доллара для алисы
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg('cbr.evrik', $euro);
$euro = substr($euro,0,-2);
$euro1 = $euro;
$format='mini';
$euro = priceToRublesAndKopeck($euro, $format);
sg("cbr.EURO",$euro); //кидаем курс евро
$format='full';
$euro1 = priceToRublesAndKopeck($euro1, $format);
sg("cbr.EURO_full", $euro1); //кидаем курс евро для алисы
// Получаем курс на завтра
$data1 = strtotime("+1 day");
$data1 = date("d/m/Y", $data1);
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$data1);
sg("cbr.uptime1", $data1); //кидаем завтравшнюю дату
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg('cbr.dollar_zavtra',$dollar);
$dollar = substr($dollar,0,-2);
$format='mini';
$dollar = priceToRublesAndKopeck($dollar, $format);
sg("cbr.USD1", $dollar); //кидаем курс доллара на завтра
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg('cbr.evrik_zavtra',$euro);
$euro = substr($euro,0,-2);
$format='mini';
$euro = priceToRublesAndKopeck($euro, $format);
sg("cbr.EURO1",$euro); //кидаем курс евро на завтра
$raz_euro = (gg('cbr.evrik_zavtra')-gg('cbr.evrik'));
$raz_dollar = (gg('cbr.dollar_zavtra')-gg('cbr.dollar'));
if (stristr($raz_dollar,'-') === FALSE) {$raz_dollar = '+'.$raz_dollar;}
if (stristr($raz_euro,'-') === FALSE) {$raz_euro = '+'.$raz_euro;}
$raz_dollar = substr($raz_dollar,0,5);
$raz_euro = substr($raz_euro,0,5);
sg('cbr.raz_dollar',$raz_dollar);
sg('cbr.raz_euro',$raz_euro);
function priceToRublesAndKopeck($price, $format) {
if ($format == 'mini') {
$rub_u = " р."; $kop_u = " к.";
}
if ($format == 'medium') {
$rub_u = " руб."; $kop_u = " коп.";
}
if ($format == 'full') {
$rub_u = " рублей"; $kop_u = " копеек";
}
if ($price != 0) {
$point = strpos($price, '.');
// Отделяем рубли от копеек
if ( !empty($point) ) {
$rub = substr($price, 0, $point);
$kop = substr($price, $point + 1);
}
// Формируем строку
if ($rub == 0) $result = $kop.$kop_u;
else $result = $rub.$rub_u." ".$kop.$kop_u;
// Возвращаем результат
return $result;
}
else {
$result = "0".$rub_u." 0".$kop_u;
return $result;
}}
Ну и криптовалюту тоже вывожу:
Код: Выделить всё
//==========Биткоин=====
$result = shell_exec("/usr/bin/curl https://api.coindesk.com/v1/bpi/currentprice/USD.json");
$result = json_decode($result,true);
$price = sprintf("%.2f",$result["bpi"]["USD"]["rate_float"]);
sg('ESP82660014aa2b.btc_of',$price);
$result = shell_exec("/usr/bin/curl https://api.exmo.com/v1/ticker/");
$result = json_decode($result,true);
$price = sprintf("%.2f",$result[BTC_USD][buy_price]);
$timen = date('H:i',$result[BTC_USD][updated]);
sg('ESP82660014aa2b.time_btc',$timen);
sg('ESP82660014aa2b.btc',$price);
//==========Рипл=====
$price = sprintf("%.2f",$result[XRP_USD][buy_price]);
$timen = date('H:i',$result[XRP_USD][updated]);
sg('ESP82660014aa2b.time_xrp',$timen);
sg('ESP82660014aa2b.xrp',$price);
обновился на php 7.2 и перестал обновляться через крон, как можно исправить?
консоль:
Код: Выделить всё
17:00:01 0.08535200 Error executing job Cron_CBRKursValuti_Cron (19861828): Warning: simplexml_load_file(http://www.cbr.ru/scripts/XML_daily.asp?date_req=21/03/2018): failed to open stream: Redirection limit reached, aborting in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(142) : eval()'d code on line 2
Warning: simplexml_load_file(): I/O warning : failed to load external entity "http://www.cbr.ru/scripts/XML_daily.asp?date_req=21/03/2018" in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(142) : eval()'d code on line 2
Fatal error: Uncaught Error: Call to a member function xpath() on boolean in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(142) : eval()'d code:5
Stack trace:
#0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(142): eval()
#1 C:\_majordomo\htdocs\lib\common.class.php(720): scripts->runScript('CBRKursValuti', '')
#2 C:\_majordomo\htdocs\modules\objects\objects.class.php(581) : eval()'d code(1): runScript('CBRKursValuti')
#3 C:\_majordomo\htdocs\modules\objects\objects.class.php(581): eval()
#4 C:\_majordomo\htdocs\lib\objects.class.php(937): objects->callMethod('Run', 0)
#5 C:\_majordomo\htdocs\objects\index.php(171) : eval()'d code(1): callMethod('Run')
#6 C:\_majordomo\htdocs\objects\index.php(171): eval()
#7 {main}
thrown in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(142) : eval()'d code on line 5 (C:\_majordomo\htdocs\lib\common.class.php)
в кроне запускаю так
вручную обновляется норм
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Ср мар 21, 2018 5:41 pm
dioxin
Зачем обновлять php? Работает и не трогай! Анекдот есть такой еще

php 5.6 debian 8 - полет нормальный!
У Вас похоже не только со скриптом проблема, но и с модулем majordomo.
Re: Модуль "Курсы валют" (ПриватБанк+Банк России)
Добавлено: Ср мар 21, 2018 5:54 pm
nick7zmail
dioxin писал(а):Зачем обновлять php? Работает и не трогай! Анекдот есть такой еще

php 5.6 debian 8 - полет нормальный!
У Вас похоже не только со скриптом проблема, но и с модулем majordomo.
Ну типа гитхаб протокол обновили...если пхп "не трогать" - не будет обновляться система...возможно модули тоже...так что это вынужденная мера.