Информер валют ТЕНГЕ

lordBlack

Мой дом здесь!
Регистрация
29 Ноя 2007
Сообщения
623
Реакции
267
вопрос, вообщем как сделать информер валют по отношению к тенге.
т.е.
скажем
доллар стоит 100 тенге
евро стоит 200 тенге
рубль стоит 10000 тенге.

есть решение к примеру так:
PHP:
<?

function getCourse($currency = array('R01235','R01239','R01335')){
	$value = array();
	$xml = DOMDocument::loadXML(file_get_contents('http://www.cbr.ru/scripts/XML_daily.asp'));
	if($xml && is_array($currency)){
		$xpc = new DOMXPath($xml);
		foreach($currency as $cur){
			$nominal = 1;
			$name = '';
			$res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Nominal/text()');
			if($res->length) $nominal = floatval(str_replace(',','.',$res->item(0)->data));
			
			$res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Name/text()');
			if($res->length) $name = $res->item(0)->data;
			
			$res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Value/text()');
			if($res->length) $value[$name] = floatval(str_replace(',','.',$res->item(0)->data))/$nominal;
			else $value[$name] = 'курс не найден';
		}
	}
	return $value;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Информер курса валют</title>
<style type="text/css">
table{
font:12px Arial, Helvetica, sans-serif;
color:#333;
}
table td,th{
padding:5px;
text-align:left;
}
</style>
</head>

<body>
<table border="0" cellspacing="0" cellpadding="5">
	<tr>
		<th colspan="2">Курс валют на <?=date('d.m.Y')?></th>
	</tr>
<?
$cur = getCourse();
foreach($cur as $name => $value){
?>
	<tr>
		<th><?=$name?></th>
		<td><?=number_format($value,4,',',' ')?> руб.</td>
	</tr>
<?
}
?>
</table>
</body>
</html>

но данное решение отображает отношение валют к рублю. а надо к тенге.
 
А включать параметр в запрос VAL_NM_RQ=R01335 не пробовали?
 
т.е. ?
если не сложно на примере....
а, извиняюсь, не туда посмотрел- цб по ходу не даёт менять валюту. С ходу не нашёл курса, где можно было бы сменить валюту на Тенге. ТОгда можно посчитать сколько 1 рубль = тенге и умножить)
PHP:
function getCourse($currency = array('R01235','R01239')){ 
    $value = array(); 
    $xml = DOMDocument::loadXML(file_get_contents('http://www.cbr.ru/scripts/XML_daily.asp')); 
 
    if($xml && is_array($currency)){ 
        $xpc = new DOMXPath($xml); 

    //получаем соотношение 1 рубль - X тенге
    $cur = 'R01335';
            $res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Nominal/text()'); 
            if($res->length) $nominal = floatval(str_replace(',','.',$res->item(0)->data)); 
            else die('курс не найден');    
                      
            $res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Value/text()'); 
            if($res->length) $mainCurs = floatval(str_replace(',','.',$res->item(0)->data))/$nominal; 
            else die('курс не найден'); 
                  
   
       $curs_r = 1/$mainCurs;
       
       // добавляем рубли к таблице
       $value['Рубли'] = $curs_r;
     
        foreach($currency as $cur){ 
            $nominal = 1; 
            $name = ''; 
            $res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Nominal/text()'); 
            if($res->length) $nominal = floatval(str_replace(',','.',$res->item(0)->data)); 
             
            $res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Name/text()'); 
            if($res->length) $name = $res->item(0)->data; 
             
            $res = $xpc->query('/ValCurs/Valute[@ID="'.$cur.'"]/Value/text()'); 
            if($res->length) $value[$name] = (floatval(str_replace(',','.',$res->item(0)->data))/$nominal)*$curs_r;   // у нас котировки 1$ = Y рублей  * X тенге
            else $value[$name] = 'курс не найден'; 
        } 
    } 
    return $value; 
}
 
Можно брать курсы с Нац.Банка РК: Для просмотра ссылки Войди или Зарегистрируйся
Рассчитывать курс доллара к тенге по кросс-курсу через рубль мне кажется не совсем правильным.
 
Назад
Сверху