В этой статье я покажу как можно получить курс любой валюты относительно рубля на завтра.
Если обратиться к сайту цетробанка по урлу http://www.cbr.ru/scripts/XML_daily.asp?date_req=27.09.2013, то он выдает xml, в котором хранится информация о курсах валюты относительно рубля на дату 27.09.2013.
И все что нам нужно, это просто разобрать полученный от цетробанка xml файл и вытащить от туда курс для интересующей нас валюты.
Ниже представлен код с подробными комментариями:
<?php
function getCurs($moneyCode){
// создаем объект для работы с XML
$xml = new DOMDocument();
// ссылка на сайт банка
$url = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d.m.Y');
// получаем xml с курсами всех валют
if ($xml->load($url)){
// массив для хранения курсов валют
$result = array();
// разбираем xml
$root = $xml->documentElement;
// берем все теги 'Valute' и их содержимое
$items = $root->getElementsByTagName('Valute');
// переберем теги 'Valute' по одному
foreach ($items as $item){
// получаем код валюты
$code = $item->getElementsByTagName('CharCode')->item(0)->nodeValue;
// получаем значение курса валюты, относительно рубля
$value = $item->getElementsByTagName('Value')->item(0)->nodeValue;
// записываем в массив, предварительно заменив запятую на точку
$result[$code] = str_replace(',', '.', $value);
}
// возвращаем значение курса, для запрошенной валюты
return $result[$moneyCode];
}else{
// если не получили xml возвращаем false
return false;
}
}
// пример использования
echo getCurs('USD').'<br/>';
echo getCurs('EUR');
?>

Прекрасно работает даже 2 года спустя. Интуитивно простой и эффективный. Спасибо за сэкономленное время!
Спасибо, отлично работает.
Огромное спасибо! Выручили.
currate.ru в одну строку решается
Тут тоже можно сократить код, при желании, просто для наглядности расписано подробно. И к тому же курс сразу из центробанка прямиком) Но это дело каждого, каким сервисом пользоваться