<?xml version="1.0" encoding="UTF-8" ?><oembed><version>1.0</version><provider_name>Чудо{вищные} заметки</provider_name><provider_url>https://miracle.rpz.name</provider_url><author_name>MiRacLe</author_name><author_url>https://miracle.rpz.name/author/miracle/</author_url><title>Получение курса валют (CBR)</title><html>&lt;p&gt;Иногда на сайтах(или для сайтов) необходим курс валют. Делают его по-разному:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&quot;парсят&quot; текстовые информеры&lt;/li&gt;
&lt;li&gt;&quot;парсят&quot; различные страницы с курсами, в том числе и &quot;http://www.cbr.ru/currency_base/D_print.asp[?date_req={dd.mm.yy}]&quot;(сам до некоторого времени так делал)&lt;/li&gt;
&lt;li&gt;Возможно кто-то использует сервисы &lt;a href=&quot;http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx&quot;&gt;CBR&lt;/a&gt;(а у меня они перестали недавно работать - даже &lt;a href=&quot;http://www.mgateway.com/php/mgw/wsdlvalidator.php&quot;&gt;WSDL&lt;/a&gt;-валидатор ругается на методы)&lt;/li&gt;&lt;/ul&gt;И вот в поисках(в случайных) наткнулся на страницу с курсами в формате XML - &quot;http://www.cbr.ru/scripts/XML_daily.asp[?date_req={d/m/y}]&quot;. Поскольку в PHP5 крайне упростилась работа с оным xml-ем написал функцию для извлечения курса:&lt;br /&gt;
&lt;pre class=&quot;php:nocontrols&quot;&gt;
function getExchange($code = &#039;USD&#039;) {        
    $valutes = array(&#039;USD&#039; =&gt; &#039;R01235&#039;,&#039;EUR&#039; =&gt; &#039;R01239&#039;);
    // если нужно - можно добавить код монгольского тугрика... 
    $code = strtoupper($code); 
    if (!in_array($code,array_keys($valutes))) { 
     // неизвестный(нафикненужный) код валюты 
        return false; 
     } else {
        $idValute = $valutes[$code]; 
        $dom = new DomDocument; // создаём DOM-дерево
        $dom-&gt;load(getXML()); 
      //функция getXML у меня просто возвращает строку с содержимым XML-ки, адрес которой написан выше, и по возможности &quot;дёргает&quot; её не с сервера cbr, а из &quot;локального кеша&quot;. 
        $xpath = new DOMXPath($dom); 
         // создаём XPath-объект 
        $query = &#039;//ValCurs/Valute[@ID=&quot;&#039;.$idValute.&#039;&quot;]/Value&#039;;
         //вся прелесть и простота открывается именно в этом хитром выражении XPath 
        $entries = $xpath-&gt;query($query); 
          // выполняем &quot;наихитрейшее&quot; выражение 
        $result = $entries-&gt;item(0)-&gt;nodeValue; 
          // и имеем необходимый результат (внимание - он в строковом представлении - при необходимости манипулировать им в вычислительных процессах лучше сделать явный cast во float) 
        return $result; 
    } 
} 
&lt;/pre&gt;
&lt;strong&gt;P.S.&lt;br /&gt;&lt;/strong&gt;Купив у нас php, Вы бесплатно получаете массу дополнительных модулей призванных облегчить Вам жизнь, увеличить потенцию и уменьшить счета за горячую воду и сэкономить уйму времени на составление регулярных выражений.&lt;/p&gt;</html><type>rich</type></oembed>