чудо{вищные} заметки

Sorry for my terrible english. My native language is PHP.

Получение курса валют (CBR)

Иногда на сайтах(или для сайтов) необходим курс валют. Делают его по-разному:

  • «парсят» текстовые информеры
  • «парсят» различные страницы с курсами, в том числе и «http://www.cbr.ru/currency_base/D_print.asp%5B?date_req={dd.mm.yy}]»(сам до некоторого времени так делал)
  • Возможно кто-то использует сервисы CBR(а у меня они перестали недавно работать — даже WSDL-валидатор ругается на методы)

И вот в поисках(в случайных) наткнулся на страницу с курсами в формате XML — «http://www.cbr.ru/scripts/XML_daily.asp%5B?date_req={d/m/y}]». Поскольку в PHP5 крайне упростилась работа с оным xml-ем написал функцию для извлечения курса:

function getExchange($code = ‘USD’) {
       $valutes = array(‘USD’ => ‘R01235′,’EUR’ => ‘R01239’); 
       // если нужно — можно добавить код монгольского тугрика…
      $code = strtoupper($code);
      if (!in_array($code,array_keys($valutes))) {
         // неизвестный(нафикненужный) код валюты
         return false;
      }else {
          $idValute = $valutes[$code]; 
          $dom = new DomDocument; // создаём DOM-дерево
          $dom->load(getXML());
         //функция getXML у меня просто возвращает строку с содержимым XML-ки, адрес которой написан выше, и по возможности «дёргает» её не с сервера cbr, а из «локального кеша».
         $xpath = new DOMXPath($dom);
         // создаём XPath-объект
        $query = ‘//ValCurs/Valute[@ID=»‘.$idValute.'»]/Value’;
        //вся прелесть и простота открывается именно в этом хитром выражении XPath
        $entries = $xpath->query($query);
        // выполняем «наихитрейшее» выражение
        $result = $entries->item(0)->nodeValue;
        // и имеем необходимый результат (внимание — он в строковом представлении — при необходимости манипулировать им в вычислительных процессах лучше сделать явный cast во float)
        return $result;
    }
}

P.S.
Купив у нас php, Вы бесплатно получаете массу дополнительных модулей призванных облегчить Вам жизнь, увеличить потенцию и уменьшить счета за горячую воду и сэкономить уйму времени на составление регулярных выражений.

Реклама

Декабрь 10, 2005 - Posted by | dev, php, web

Комментариев нет.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: