Страница 4 из 6
Re: Курс доллара
Добавлено: Пт апр 10, 2015 1:44 pm
Ruslan
Спасибо за ответы, но это я пробовал.
Код: Выделить всё
$xml = $file->xpath("//CURRENCY");
$valute = strval($xml[0]->RATE);
и так
Код: Выделить всё
$xml = $file->xpath("//CURRENCIES/CURRENCY");
$valute = strval($xml[0]->RATE);
и так
Код: Выделить всё
$xml = $file->xpath('//CURRENCIES/CURRENCY');
$valute = strval($xml[0]->RATE);
и вот так
Код: Выделить всё
$xml = $file->xpath("//CURRENCY");
$valute = strval($xml[1]->RATE);
и еще десяток вариантов.
Результат тотже. В DEBUG пусто << 13:30:08 DEBUG [root]: Value: (at C:\_majordomo\htdocs\lib\general.class.php:427)>>
Подозреваю что в моем случае неправильно "парсится" полученный xml.
Если забить эту ссылку
http://www.boi.org.il/currency.xml?curr=01 в браузер
получаю это:
Код: Выделить всё
-<CURRENCIES>
<LAST_UPDATE>2015-04-09</LAST_UPDATE>
-<CURRENCY>
<NAME>Dollar</NAME>
<UNIT>1</UNIT>
<CURRENCYCODE>USD</CURRENCYCODE>
<COUNTRY>USA</COUNTRY>
<RATE>3.943</RATE>
<CHANGE>0.102</CHANGE>
</CURRENCY>
</CURRENCIES>
Ничего лишнего, но как его разобрать в php?

Re: Курс доллара
Добавлено: Чт апр 16, 2015 9:28 pm
Ruslan
Разобрался, заработало.
Вот рабочий код. Может кому поможет.
Код: Выделить всё
$file = simplexml_load_file("http://www.boi.org.il/currency.xml?curr=01");
if (!$file) // если нет файла
{
DebMes("Script =BankIsrael_Exchange= receive data error");
return;
}
$xml = $file->xpath("/CURRENCIES");
$u_date = $xml[0]->LAST_UPDATE;
$xml = $file->xpath("/CURRENCIES/CURRENCY");
$rate = floatval($xml[0]->RATE);
$change = $xml[0]->CHANGE;
$r_rate = round($rate,2);
setGlobal('USD.Rate', $r_rate);
setGlobal('USD.Update_Date', $u_date);
setGlobal("USD.Update_Time",date("H:i",time()));
Всем спасибо!
Re: Курс доллара
Добавлено: Пт июл 24, 2015 1:42 pm
supersuperoleg
В помощь новичкам подробно расписал создание
класса и
меню для курсов валют.
Re: Курс доллара
Добавлено: Вт июл 28, 2015 12:52 pm
gagarin74
Ребят,добрый день. Не могли бы Вы поделится решением (если оно существует),по вытягиванию курса в сбербанке!!!!
Re: Курс доллара
Добавлено: Вт июл 28, 2015 1:15 pm
Amarok
Код: Выделить всё
if (!isOnline('Internet')) { return; }
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));
// Американский доллар
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("USD.rate",$valute);
// Евро
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("EUR.rate",$valute);
// Украинская гривна
$xml = $file->xpath("//Valute[@ID='R01720']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("UAH.rate",$valute);
// Китайский юань
$xml = $file->xpath("//Valute[@ID='R01375']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("CNY.rate",$valute);
say("Курс валют обновлен", 0);
Re: Курс доллара
Добавлено: Вт июл 28, 2015 3:40 pm
gagarin74
Amarok писал(а):Код: Выделить всё
if (!isOnline('Internet')) { return; }
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));
// Американский доллар
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("USD.rate",$valute);
// Евро
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("EUR.rate",$valute);
// Украинская гривна
$xml = $file->xpath("//Valute[@ID='R01720']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("UAH.rate",$valute);
// Китайский юань
$xml = $file->xpath("//Valute[@ID='R01375']");
$valute = strval($xml[0]->Value);
$valute = str_replace(",",".",$valute);
$valute = round($valute,2);
sg("CNY.rate",$valute);
say("Курс валют обновлен", 0);
а по сбербанку нема ?
Re: Курс доллара
Добавлено: Пн дек 14, 2015 10:33 am
Amarok
gagarin74 писал(а):а по сбербанку нема ?
Неа(
Re: Курс доллара
Добавлено: Пн дек 14, 2015 10:34 am
Amarok
А cbr.ru случайно не знает курс биткоинов?
Re: Курс доллара
Добавлено: Пн дек 14, 2015 10:15 pm
chip
ребят, подскажите, с проблемой:
набросал скриптик для оф курса:
Код: Выделить всё
$s = file_get_contents('http://bank.gov.ua/NBUStatService/v1/statdirectory?exchange&json');
$json = json_decode($s);
$rates = array(
'USD'=>null,
'EUR'=>null,
'RUB'=>null
);
foreach ($json as $currency){
if (array_key_exists($currency->cc, $rates)){
$rates[$currency->cc] = round($currency->rate, 2);
}
}
sg("nbu.USD",$rates['USD']);
sg("nbu.EUR",$rates['EUR']);
sg("nbu.RUB",$rates['RUB']);
Но странные глюки есть, стоит в onNewHour на выполнения каждые 4-е часа (if (!($h%4)) {callMethod("nbu.update");} // обновим курс валюты каждые 4 часа), но иногда значения просто пропадают, что интересно, иногда и при ручном запуске скрипта из настроек, после нажатия "выполнить" - страница пытается обновится минуты 2-е (при чём ни на одну страницу МДМ в этот момент не пускает, как-будто думает), потом отпускает и при повторном нажатии выполнить - всё работает дальше.
ошибок в логах нет...
Re: Курс доллара
Добавлено: Вт дек 15, 2015 6:54 pm
gladskoy
supersuperoleg писал(а):В помощь новичкам подробно расписал создание
класса и
меню для курсов валют.
при установке кода, всплывает вот такая ошибочка

- 1.jpg (93.96 КБ) 7841 просмотр
поможите советом