laimas,
Здравствуйте! На понедельник курс не обновился! |
Запрос в 15:43 по Москве, текущий курс:
"current":{"date":"20.2.2018","value":56.34,"rate" :1} Вам уже все сказано - и о запросах, и о времени. Проверяйте запросы в ручном режиме - непосредственным запросом в браузере, анализируйте, выясняйте. |
laimas,
Если я поставлю запрашивать каждые 30 минут это нормально? ![]() или как поставить запрашивать каждые 2 или 3 часа? |
|
Вам по этим курсам рассказали уже все от и до, единственное, что не сплясали еще.
Сервер должен запрашивать курс не текущей даты, а следующей, то есть запрос будет http://www.cbr.ru/scripts/XML_daily.asp?date_req=20/02/2018 А на 19, ЦБ и возвратит на 19. Какой формат параметра запроса к ЦБ должен быть показывалось. |
laimas,
теперь курс изменился я с планировщиком не пойму. Каждые 30 минут нормально запрашивать? |
Цитата:
После справа от найденного слова найдите форму, справа от которой будет значок вопроса. Наведите курсор на этот значок, не убирая курсора со значка подождите пока на экране отобразится подсказка. После отображения подсказки вдумчиво прочитайте предложения, которые будут написаны черным шрифтом на желтом фоне. Выполняйте эту процедуру до тех пор, пока не осознаете, что вы нашли ответ на свой вопрос. Еще можно прочитать эту статью: http://ru.ispdoc.com/index.php/%D0%9...)_(ISPmanager) |
Цитата:
|
Цитата:
|
spinastr, поправил ссылку в комментарии №367, попробуйте снова.
|
Цитата:
|
Цитата:
|
Nexus,
Подскажите как написать, я не понимаю уже вторую неделю с курсом этим |
spinastr, перечитайте комментарий №367, там все написано.
|
|
Цитата:
Осталось найти слово "Часы" и т.д. по инструкции из комментария №367. |
НАРОД Я НЕ ПОНИМАЮ ЧТО ТРУДНО СКАЗАТЬ, КАКИЕ ЗАГАДКИ? ВЫ МЕНЯ ЧТО ПЫТАЕТЕСЬ ДРЕССИРОВАТЬ? ИЛИ ДУМАЕТЕ Я НА ФРИЛАНСЕ ДЕЛАЮ КУРС И ПОЛУЧУ ДЕНЬГИ И ТИПА ЭТО УРОК МНЕ?
ДЕЛАЮ НА СВОЁМ САЙТЕ ВЫВОД ОТ НЕЧЕГО ДЕЛАТЬ! ТАК КАК ИНВАЛИД И СИЖУ В КОЛЯСКЕ, ВЕСНОЙ ПОЙДУ НА УЛИЦУ И ЗАБЪЮ НА ЭТУ ТЕМУ! РАДУЙТЕСЬ ЧТО МЕНЯ ДОВОДИТЕ! ГОРДИТЕСЬ ЧТО Я НЕ ЗАНЮ А ВЫ ЗАНЕТЕ! СПАСИБО |
Что это вообще такое?
https://pp.userapi.com/c841626/v8416...ybln6NPJ4o.jpg как поставить каждый час или 2 обновлять? |
spinastr, к чему истерика? Никто вас не пытается дрессировать, оскорбить и т.п.
Вам в этой теме уже все расписали, привели код (единственное, что не сделали, так это не выложили архива со всеми файлами и инструкцией по применению). Как настроить выполнение задачи каждые N часов написано, и в подсказке, и в статье, ссылку на которую я привел. Нужно только догадаться, что "N" в подсказке нужно заменить на число. Я заранее извиняюсь, но вы уже не в первый раз пишите, что вы инвалид. Я ни в коем случае ничего плохого о вас не хочу сказать, но для чего вы это пишите, хотите чтобы вас пожалели? |
spinastr, у вас задача планировщика с описанием "Курс США" выполняется каждые 30 минут, в поле "Минуты" написано: "*/30", в подсказке к этому полю написано: "*/n - каждые n минут".
Подсказка к полю "Часы" не отличается, от подсказки к полю "Минуты". Найдете связь между этими данными (более чем очевидную) - сможете настроить планировщик, как душе угодно. |
Прошу прощения, что не выложил ответ на вопрос, невзирая на то, что он невероятно простой (буквально 3 символа).
Мне действительно из-за этого несколько неловко, но это не тема на форуме, а цирк какой-то. |
Nexus,
В Минутах поставить * В Часах поставить */1 - обновлять каждый час? |
spinastr, да, все верно.
|
Nexus,
спасибо) |
|
spinastr,
Цитата:
|
Nexus,
там есть лог действия |
spinastr, тем более.
|
Nexus,
типа так должно быть написано? [19/Feb/2018:16:52:02 +0300] "GET /current/current.php HTTP/1.0" 200 - "-" "Wget/1.12 (linux-gnu)" |
spinastr, да, код ответа "200" значит запрос успешно обработан, тем не менее это не значит, что в процессе работы ошибок не возникло вовсе.
|
Как в этом скрипте Евро вывести?
|
Заменить current.json этим
{"date":"22.2.2018","rate":{"USD":{"value":56.6537 ,"dyn":2},"EUR":{"value":69.8087,"dyn":1}}} Код current.php заменить этим: <? libxml_use_internal_errors(); if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y', strtotime('+1 day')))) { $date = strtotime($xml->attributes()->Date); $currency = json_decode(file_get_contents('current.json')); if($date > strtotime($currency->date)) { foreach ($xml->children() as $child) { //обход полученных курсов if($child->NumCode==840 || $child->NumCode==978) $rate[$child->CharCode->__toString()] = (float)str_replace(',', '.', $child->Value); if(count($rate)==2) break; } if($rate) { $currency->date = date('j.n.Y', $date); foreach($currency->rate as $k => &$v) { $v->dyn = ($n = $rate[$k] - $v->value) < 0 ? 1 : ($n ? 2 : 0); $v->value = $rate[$k]; } $dir = dirname(__FILE__); chdir($dir); chmod($dir, 0777); file_put_contents('current.json',json_encode($currency)); chmod($dir, 0700); } } } ?> JS код вывода курса на страницу тоже надо изменить. Какой код, включая и html-верстку элементов под курсы используется? |
laimas,
Спасибо, это коды валют? if($child->NumCode==840 || $child->NumCode==978) Как можно вывести. Точно также как сейчас есть, то есть курс на сегодня и завтра доллара и добавить курс на сегодня и завтра ЕВРО? |
Нет в данном коде никаких курсов на сегодня и завтра, есть текущий курс доллара и евро.
Спрашивается - какой код на клиенте ля вывода валюты, включая html верстку? Вот что непонятного из этого? Показывайте код клиентский, напишу изменения, а нет, так нет, долгие разговоры мне вести некогда. |
Цитата:
<html lang="ru"> <head> <meta charset="utf-8" /> <title>Документ без названия</title> <script type="text/javascript" src="http://forum.ucoz.ru/.s/src/jquery-1.7.2.js"></script> </head> <body> <style> .up {color: #0f0; /*зеленый цвет*/} .down {color: #f00;} </style> <table style="width:50%;font-family: Verdana, Arial, Helvetica, sans-serif;"> <tbody> <tr> <td style="font-size: 3vw; color: #8c8c8c;"><span class="usddata2"></span></td> <td style="font-size: 3vw; color: #8c8c8c;"><span class="usddata"></span></td> </tr> <tr> <td style="font-size: 4vw; color: #333333;"><span class="previous"></span></td> <td style="font-size: 4vw; color: #333333;"><span class="current"></span></td> </tr> </tbody> </table> <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> </body> </html> Визуально это выглядит так: https://pp.userapi.com/c841127/v8411...McDyFLQydg.jpg |
А надо курсы также текущий день (или новый курс) и предыдущий, но доллара и евро?
|
Цитата:
|
Тогда current.json заменить этим
{"current":{"date":"22.2.2018","USD":{"value":56.6 537,"rate":2},"EUR":{"value":69.8087,"rate":1}},"p revious":{"date":"21.2.2018","USD":{"value":56.520 1,"rate":2},"EUR":{"value":69.8928,"rate":1}}} Код current.php заменить этим <? libxml_use_internal_errors(); if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y', strtotime('+1 day')))) { $date = strtotime($xml->attributes()->Date); $currency = json_decode(file_get_contents('current.json'), 1); if($date > strtotime($currency['current']['date'])) { foreach ($xml->children() as $child) { if($child->NumCode==840 || $child->NumCode==978) $rate[$child->CharCode->__toString()] = (float)str_replace(',', '.', $child->Value); if(count($rate)==2) break; } if($rate) { $currency['previous'] = $currency['current']; $currency['current']['date'] = date('j.n.Y', $date); foreach($currency['current'] as $k => &$v) { if($k=='date') continue; $v['rate'] = ($n = $rate[$k] - $v['value']) < 0 ? 1 : ($n ? 2 : 0); $v['value'] = $rate[$k]; } $dir = dirname(__FILE__); chdir($dir); chmod($dir, 0777); file_put_contents('current.json',json_encode($currency)); chmod($dir, 0700); } } } ?> HTML/JS <table> <tr> <td><span class="previous date"></span></td> <td><span class="current date"></span></td> </tr> <tr> <td><span class="previous USD"></span></td> <td><span class="current USD"></span></td> </tr> <tr> <td><span class="previous EUR"></span></td> <td><span class="current EUR"></span></td> </tr> </table> <script> //именно такое и получит Ajax $.getJSON("http://h116641.s08.test-hf.su/", function(data) { $.each(data, function(k, o) { $.each(o, function(a, r) { $('.'+k+'.'+a).html( a=='date' ? r : {'USD':'$','EUR':'€'}[a] + ' ' + r.value.toFixed(2) + ' <b class=' + ['','down','up'][r.rate] +'>' + ['','▼','▲'][r.rate] +'</b>' ) }) }) }); </script> Стили надо в css описывать, а не забивать ими таблицу. Не надо выдумывать usddata2, usddata3, ... Элемент, в который нужно поместить информацию ему принадлежащую, находится по составному имени класса, которые равны ключам json. Для дат это previous.date, current.date, а для курса соответственно USD или EUR вместо date. И пусть элементов с таким классом будет куча на странице, во все будет помещено. .attr("title", o.date) удалено, смысла нет, если даты в заголовках указаны. |
Цитата:
|
В какой панели, если в коде показана таблица с явным указанием дат?
Что кто-то будет догадываться как обратиться к неизвестной панели? Нет конечно. |
Часовой пояс GMT +3, время: 06:35. |