Курс доллара

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ruslan
Сообщения: 37
Зарегистрирован: Чт апр 09, 2015 7:11 pm
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Re: Курс доллара

Сообщение Ruslan » Пт апр 10, 2015 1:44 pm

Спасибо за ответы, но это я пробовал.

Код: Выделить всё

$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? :?: :?: :?:
RaspBerry Pi 2 | MajorDoMo lastUpdate:27/04/2017
Ruslan
Сообщения: 37
Зарегистрирован: Чт апр 09, 2015 7:11 pm
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Re: Курс доллара

Сообщение Ruslan » Чт апр 16, 2015 9:28 pm

Разобрался, заработало. :D
Вот рабочий код. Может кому поможет.

Код: Выделить всё

$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()));
 
Всем спасибо!
RaspBerry Pi 2 | MajorDoMo lastUpdate:27/04/2017
supersuperoleg
Сообщения: 8
Зарегистрирован: Сб июн 27, 2015 6:50 pm
Благодарил (а): 5 раз
Поблагодарили: 5 раз

Re: Курс доллара

Сообщение supersuperoleg » Пт июл 24, 2015 1:42 pm

В помощь новичкам подробно расписал создание класса и меню для курсов валют.
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Курс доллара

Сообщение gagarin74 » Вт июл 28, 2015 12:52 pm

Ребят,добрый день. Не могли бы Вы поделится решением (если оно существует),по вытягиванию курса в сбербанке!!!!
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Курс доллара

Сообщение Amarok » Вт июл 28, 2015 1:15 pm

Код: Выделить всё

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); 
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Курс доллара

Сообщение gagarin74 » Вт июл 28, 2015 3:40 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);

а по сбербанку нема ?
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Курс доллара

Сообщение Amarok » Пн дек 14, 2015 10:33 am

gagarin74 писал(а):а по сбербанку нема ?
Неа(
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Курс доллара

Сообщение Amarok » Пн дек 14, 2015 10:34 am

А cbr.ru случайно не знает курс биткоинов?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
chip
Сообщения: 158
Зарегистрирован: Пн ноя 09, 2015 11:03 pm
Благодарил (а): 43 раза
Поблагодарили: 7 раз

Re: Курс доллара

Сообщение chip » Пн дек 14, 2015 10:15 pm

ребят, подскажите, с проблемой:

набросал скриптик для оф курса:

Код: Выделить всё

$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-е (при чём ни на одну страницу МДМ в этот момент не пускает, как-будто думает), потом отпускает и при повторном нажатии выполнить - всё работает дальше.

ошибок в логах нет...
gladskoy
Сообщения: 34
Зарегистрирован: Вс мар 15, 2015 9:36 am
Откуда: Stavropol
Благодарил (а): 12 раз
Поблагодарили: 0

Re: Курс доллара

Сообщение gladskoy » Вт дек 15, 2015 6:54 pm

supersuperoleg писал(а):В помощь новичкам подробно расписал создание класса и меню для курсов валют.
при установке кода, всплывает вот такая ошибочка
1.jpg
1.jpg (93.96 КБ) 6901 просмотр
поможите советом
Ответить