function quote_xe_currency($to, $from = DEFAULT_CURRENCY)
{
    $url = 'http://www.xe.net/ucc/convert.cgi';
    $data = 'Amount=1&From=' . $from . '&To=' . $to;
    // check via file() ... may fail if php file Wrapper disabled.
    $page = @file($url . '?' . $data);
    if (!is_object($page) && function_exists('curl_init')) {
        // check via cURL instead.  May fail if proxy not set, esp with GoDaddy.
        $page = doCurlCurrencyRequest('POST', $url, $data);
        $page = explode("\n", $page);
    }
    if (is_object($page) || $page != '') {
        $match = array();
        preg_match('/[0-9.]+\\s*' . $from . '\\s*=\\s*([0-9.]+)\\s*' . $to . '/', implode('', $page), $match);
        if (sizeof($match) > 0) {
            return $match[1];
        } else {
            return false;
        }
    }
}
function quote_cbr_currency($code, $base = DEFAULT_CURRENCY)
{
    static $rateCacheCBR = false;
    if (!$rateCacheCBR) {
        $rateCacheCBR = array();
        $rateCacheCBR['RUR'] = $rateCacheCBR['RUB'] = 1;
        $url = 'http://www.cbr.ru/scripts/XML_daily.asp';
        $data = '';
        // check via file() ... may fail if php file Wrapper disabled.
        $page = @file($url . '?' . $data);
        if (!is_array($page) && function_exists('curl_init')) {
            // check via cURL instead.  May fail if proxy not set, esp with GoDaddy.
            $page = doCurlCurrencyRequest('GET', $url, $data);
            $page = explode("\n", $page);
        }
        if (is_array($page) || $page != '') {
            $page = implode('', $page);
            preg_match_all("|<CharCode>(.*?)</CharCode>|is", $page, $CharCode);
            preg_match_all("|<Nominal>(.*?)</Nominal>|is", $page, $Nominal);
            preg_match_all("|<Value>(.*?)</Value>|is", $page, $Value);
            //        echo '<pre>';var_export($CharCode[1]);echo '<pre>';
            //        echo '<pre>';var_export($Nominal[1]);echo '<pre>';
            //        echo '<pre>';var_export($Value[1]);echo '<pre>';
            for ($i = 0, $n = sizeof($CharCode[1]); $i < $n; $i++) {
                $Value[1][$i] = str_replace(',', '.', $Value[1][$i]);
                //        	echo $CharCode[1][$i] . ' ' . $Nominal[1][$i] . ' ' . $Value[1][$i] . ' ' . $Value[1][$i]/$Nominal[1][$i] . '<br />';
                $rateCacheCBR[$CharCode[1][$i]] = $Value[1][$i] / $Nominal[1][$i];
            }
            //        echo '<pre>';var_export($rateCacheCBR);echo '<pre>';
            //        die;
        }
    }
    //    echo '<pre>';var_dump($code, isset($rateCacheCBR[$code]), $base, isset($rateCacheCBR[$base]));echo '<pre>';
    if (isset($rateCacheCBR[$code]) && isset($rateCacheCBR[$base])) {
        $rate = round($rateCacheCBR[$base] / $rateCacheCBR[$code], 4);
        return (string) $rate;
    } else {
        return false;
    }
}