Цитата:
Что бы евро вывести, мне просто id валюты поменять и в новую папку эти скрипты добавить? |
Слов нет, после того как и html код не раз показан был и пояснение как это работает, как в нужное место по этому $('.'+k) помещается информация о курсах, писать такую хрень.
|
laimas,
У Банка новый курс на сегодня, а в скрипте ничего не обновилось. 16 число 56,5918 и тут курс есть Цитата:
'тут точка откуда она' ? потом k - это что откуда? |
Цитата:
Цитата:
Чтобы понимать, надо изучать. |
Банк отдает курсы за 16.02.2018
http://www.cbr.ru/scripts/XML_daily....req=16.02.2018 |
laimas,
Скажите, почему скрипт не выводит курс за 16, в чём ошибка, ? {"current":{"date":"15.2.2018","value":57.59,"rate":1},"previous":{"date":"14.2.2018","value":57.77,"rate":1}} |
Цитата:
|
laimas,
каждые 15 минут обновляет |
Значит ЦБ возвращает курс запрашиваемой даты, то есть за 15, и они будут равны.
|
Как ранее уже упоминалось, если запрашивать курс на следующий день от текущего или еще на более большую перспективу, то ЦБ вернет последний установленный курс, то есть и дату установления. Значит по идее можно запрашивать курс на текущую дату + день, для этого строка запроса должны быть такой:
if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y', strtotime('+1 day')))) { Строки 2 и 40 в коде https://javascript.ru/forum/478137-post315.html нужно удалить. И не терзать ЦБ, что так важно чтобы тютя в тютю изменения прошли? Узнать когда по Москве устанавливается курс новый, в это время + 10-20 минут и делать каждый день один запрос. |
Цитата:
Как правило, официальные курсы устанавливаются Банком России до 15:00 по московскому времени. Банк России публикует информацию об официальных курсах иностранных валют по отношению к рублю на официальном сайте Банка России в сети Интернет сразу после их установления. http://www.cbr.ru/currency_base/daily.aspx |
Очень помогло. :)
Можно представить, как Набиуллина заходит в каморку к проггеру ЦБ: - Леша, мы новый курс придумали, забей его в базу. И зайди в бухгалтерию, женщины жалуются, компьютеры требуют закрыть лишние окна, хотя они в кабинете уже все закрыли. Леша, в сердцах "Как же все достало, забить бы на все!": - Уже спешу, Эльвира Сахипзадовна. |
laimas,
то есть планировщик можно поставить на 15:15 примерно обновлять? |
laimas,
заменил строку, удалил две строки всё верно? Там ниже ошибка светится https://sun1-3.userapi.com/c840520/v...ShZPYGY7iY.jpg что это значит и что делать? |
Цитата:
|
Цитата:
Это я не ту строку кода указал, удалять надо 4 и 40. |
laimas,
Всё верно, сохранять и ставить планеровщик на 15:15? https://pp.userapi.com/c841436/v8414...C5DWG7htxk.jpg |
Ну в общем то да, хотя строку 2 тоже удалить надо, а строки 5, 6 можно поместить за строкой 31, чтобы не выполнять их лишний раз.
|
|
Ну строки перенесены правильно, а почему не удалены с прежнего места? 2, 3 строки удалить.
|
|
По структуре да, по запросу нет, я же писал здесь о запросе.
|
laimas,
Банк терзать там написано не нужно. То есть планировщик обновляет каждые 15 минут информацию так и оставить? |
В адресе запроса получение даты изменить, как по ссылке указано, что непонятного?
|
Цитата:
{"current":{"date":"15.2.2018","value":57.59,"rate":1},"previous":{"date":"14.2.2018","value":57.77,"rate":1}} |
Это не запрос, это результат запроса - JSON.
А запрос, это строка кода запроса с url сервера ЦБ, с передачей даты как параметра этого запроса, и русским же языком там написано для этого строка запроса должны быть такой: и ниже код строки этого запроса. Ну что может еще непонятного? |
laimas,
это? <script> //именно такое и получит Ajax $.getJSON("http://h116641.s08.test-hf.su/", function(data) { $('.usddata').html(data.current.date); $('.usddata2').html(data.previous.date); //и вот тут данные этого объекта помещаются на свои места $.each(data, function(k, o) { $('.'+k).html("$ " + o.value + ' <b class=' + ['','down','up'][o.rate] +'>' + ['','▼','▲'][o.rate] +'</b>').attr("title", o.date) }) }); </script> или <? $currency = json_decode(file_get_contents('current.json')); libxml_use_internal_errors(); if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y'))) { $date = strtotime($xml->attributes()->Date); if($date > strtotime($currency->current->date)) { foreach ($xml->children() as $child) { if($child->NumCode==840) { $usd = round((float)str_replace(',', '.', $child->Value), 2); break; } } if($usd) { if($rate = $usd - $currency->current->value) $rate = $rate < 0 ? 1 : 2; $currency->previous = clone $currency->current; $currency->current->date = date('j.n.Y', $date); $currency->current->value = $usd; $currency->current->rate = $rate; $dir = dirname(__FILE__); chdir($dir); chmod($dir, 0777); file_put_contents('current.json',json_encode($currency)); chmod($dir, 0700); } } } ?> |
Цитата:
Цитата:
Ну это уже ни в какие ворота. Что из показанного запрашивает курс у ЦБ? Неужели не видно, что по ссылке это 5-я строка кода файла current.php? В строке 5 дата запроса должна получаться не как date('d/m/Y'), а как date('d/m/Y', strtotime('+1 day')) И чтобы все это было заменено корректно, по ссылке приведена строка полностью, которой и нужно заменить строку 5. Офигеть. |
laimas,
это if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y'))) { заменил на это if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y', strtotime('+1 day')))) { Верно? |
Да. Курс для следующего дня надо запрашивать, иначе никакого обновления и не получить, только на следующий день можно будет.
|
Цитата:
В планировщике поставить время 0:07 или 15:17? |
spinastr,
Цитата:
|
Цитата:
|
Поставил ежедневно в 15:17.
|
Цитата:
|
Цитата:
|
Подскажите у меня на этом форуме ещё одна тема не могу её найти, есть что то что бы найти и поиск её не ищет.
|
spinastr,
Через профиль |
Dilettante_Pro,
там нет я смотрел |
Курс обновился сам не знаю когда
http://h116641.s08.test-hf.su/test.html |
Часовой пояс GMT +3, время: 02:07. |