Курс валюты с ЦБР
Добавлено: Вт фев 14, 2017 8:21 pm
Недавно начал использовать MD методом проб и ошибок. Брал различные куски кодов и собирал.
Сделал сбор курса доллара и евро с центробанка. Вот собственно метод:
На сцену вывожу короткий вариант, а Алисе скармливаю полный:
Осталось сделать чтобы не выводил 06 копеек, а 6 копеек и не 61 рублей, а 61 рубль. Может кто подскажет?
Сделал сбор курса доллара и евро с центробанка. Вот собственно метод:
СпойлерПоказать
Код: Выделить всё
$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);
$dollar = substr($dollar,0,-2);
$dollar1 = $dollar;
echo $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);
$euro = substr($euro,0,-2);
$euro1 = $euro;
echo $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);
$dollar = substr($dollar,0,-2);
echo "<br>".$dollar." "; // для отладки
$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);
$euro = substr($euro,0,-2);
echo $euro; // для отладки
$format='mini';
$euro = priceToRublesAndKopeck($euro, $format);
sg("cbr.EURO1",$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;
}}
Осталось сделать чтобы не выводил 06 копеек, а 6 копеек и не 61 рублей, а 61 рубль. Может кто подскажет?