<?php function Currency_Echo($color,$color2,$color3,$time){
$date_1=date('d/m/Y', time()-1036800);
$date_2=date('d/m/Y', time()+86400);
$requrl= "http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1={$date_1}&date_req2={$date_2}&VAL_NM_RQ=R01235";
$requrl2= "http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1={$date_1}&date_req2={$date_2}&VAL_NM_RQ=R01239";
$requrl3= "http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1={$date_1}&date_req2={$date_2}&VAL_NM_RQ=R01375";
$requrl4= "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd";
$name1 = 'russian_currency_cb_usd';
$name2 = 'russian_currency_cb_eur';
$name3 = 'russian_currency_cb_cny';
$name4 = 'russian_currency_cb_btc';
$cached = get_transient($name1);
$doc = unserialize($cached);}
set_transient($name1, serialize($doc), 60 * $time);
$doc = implode('', $doc);
if(preg_match("/<ValCurs.*?>(.*?)<\/ValCurs>/is", $doc, $m))
preg_match_all("/<Record(.*?)>(.*?)<\/Record>/is", $m[1], $r, PREG_SET_ORDER);
$m = array(); $d = array();
for($i=0; $i<count($r); $i++) {
if(preg_match("/Date=\"(\d{2})\.(\d{2})\.(\d{4})\"/is", $r[$i][1],$m)) {
$dv = "{$m[1]}/{$m[2]}/{$m[3]}";
if(preg_match("/<Nominal>(.*?)<\/Nominal>.*?<Value>(.*?)<\/Value>/is", $r[$i][2], $m)) {
$m[2] = preg_replace("/,/",".",$m[2]);
$d[] = array($dv, $m[1], $m[2]);
$rate = sprintf("%.2f",$last[2]);
$cached = get_transient($name2);
$doc = unserialize($cached);}
set_transient($name2, serialize($doc), 60 * $time);
$doc = implode('', $doc);
if(preg_match("/<ValCurs.*?>(.*?)<\/ValCurs>/is", $doc, $m))
preg_match_all("/<Record(.*?)>(.*?)<\/Record>/is", $m[1], $r, PREG_SET_ORDER);
$m = array(); $d = array();
for($i=0; $i<count($r); $i++) {
if(preg_match("/Date=\"(\d{2})\.(\d{2})\.(\d{4})\"/is", $r[$i][1],$m)) {
$dv = "{$m[1]}/{$m[2]}/{$m[3]}";
if(preg_match("/<Nominal>(.*?)<\/Nominal>.*?<Value>(.*?)<\/Value>/is", $r[$i][2], $m)) {
$m[2] = preg_replace("/,/",".",$m[2]);
$d[] = array($dv, $m[1], $m[2]);
$rate = sprintf("%.2f",$last[2]);
$cached = get_transient($name3);
$doc = unserialize($cached);}
set_transient($name3, serialize($doc), 60 * $time);
$doc = implode('', $doc);
if(preg_match("/<ValCurs.*?>(.*?)<\/ValCurs>/is", $doc, $m))
preg_match_all("/<Record(.*?)>(.*?)<\/Record>/is", $m[1], $r, PREG_SET_ORDER);
$m = array(); $d = array();
for($i=0; $i<count($r); $i++) {
if(preg_match("/Date=\"(\d{2})\.(\d{2})\.(\d{4})\"/is", $r[$i][1],$m)) {
$dv = "{$m[1]}/{$m[2]}/{$m[3]}";
if(preg_match("/<Nominal>(.*?)<\/Nominal>.*?<Value>(.*?)<\/Value>/is", $r[$i][2], $m)) {
$m[2] = preg_replace("/,/",".",$m[2]);
$d[] = array($dv, $m[1], $m[2]);
$rate = sprintf("%.2f",$last[2]);
$rates['cny'] = (string)(((double)$rates['cny']) / 10);
$cached = get_transient($name4);
$doc = unserialize($cached);}
set_transient($name4, serialize($doc), $time);
$doc = implode('', $doc);
preg_match("/\{\"bitcoin\"\:\{\"usd\"\:(\d{3,6})\.(\d+)/", $doc, $r);
if ((empty($rates['usd'])) or (empty($rates['eur'])) or (empty($rates['cny'])) or (empty($rates['btc']))) {
$rc_options = get_option('rc_options');
$rates['usd'] = $rc_options['usd_cb'];
$rates['eur'] = $rc_options['eur_cb'];
$rates['cny'] = $rc_options['cny_cb'];
$rates['btc'] = $rc_options['btc_cb'];
$rc_options = get_option('rc_options');
$rc_options['usd_cb'] = $rates['usd'];
$rc_options['eur_cb'] = $rates['eur'];
$rc_options['cny_cb'] = $rates['cny'];
$rc_options['btc_cb'] = $rates['btc'];
update_option('rc_options', $rc_options);
<p class="currency_title">Курсы валют</p>
<span class="znak">$</span>
<p class="number">'.substr($rates['usd'],0,5).'</p>
<span class="znak">€</span>
<p class="number">'.substr($rates['eur'],0,5).'</p>
<span class="znak">¥</span>
<p class="number">'.substr($rates['cny'],0,4).'</p>
<span class="znak">₿</span>
<p class="number">'.$rates['btc'].'</p>