В этой статье я покажу как можно получить курс любой валюты относительно рубля на завтра.
Если обратиться к сайту цетробанка по урлу 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 в одну строку решается
Тут тоже можно сократить код, при желании, просто для наглядности расписано подробно. И к тому же курс сразу из центробанка прямиком) Но это дело каждого, каким сервисом пользоваться