laimas,
Спасибо вам! Но я не понимаю, у меня на стороннем хостинге есть место, туда залито два скрипта, php ссылки на них выше. Они отображают курс всё работает хорошо, есть крон который планирует и обновляет. Но я ничего не понимаю что выше написано))) Если можно всё точно по порядку разложить я на сервере сделаю и добавлю нужный файл. |
Цитата:
Не понял, как нужно написать в скрипте что бы туда добавить дату? |
<li> <div class="wow fadeInLeft animated" style="visibility: visible; animation-name: bounceIn;"> <a href="index/grafik_kursa_valjut/0-167" title="СЮДА ВЫВЕСТИ ДАТУ - Посмотреть курс валют"> <div id="usd"></div> </a> </div> </li> найдите отличия?? ;)
$('#usd').parent().attr('title', data.Date +"- Посмотреть курс валют");
|
$('#usd').html("$ " +data.Valute.USD.Value.toFixed(2) +trend);
$('#usd').parent().attr('title', data.Date +"- Посмотреть курс валют");
В скрипт добавить новый массив? |
$('#usd').html("$ " +data.Valute.USD.Value.toFixed(2) +trend).parent().attr('title', data.Date +"- Посмотреть курс валют");
вот так можно сразу |
j0hnik,
Спасибо, работает. Сейчас друга попросил, он зашёл с телефона и у него показывает вообще вчерашний курс. ЧТо делать? пипец какойто))) тут описано Как получить последние курсы со стороны сервера? Не пользуетесь PHP? Нет проблем! Добавьте такой код в /etc/cron.hourly/cbr:
#!/bin/sh
set -e
mkdir -p /var/cache/cbr
cd /var/cache/cbr
for file in daily_utf8.xml daily.xml daily_eng.xml daily_eng_utf8.xml daily_json.js
do wget --timestamping --no-verbose https://www.cbr-xml-daily.ru/$file
done 2>&1 | xargs -I{} logger --tag $0 --id=$$ "{}"
Затем дайте права на выполнение: sudo chmod +x /etc/cron.hourly/cbr И сделайте первую загрузку: sudo /etc/cron.hourly/cbr Эта программа будет поддерживать самую актуальную версию данных о курсах валют во всех форматах в каталоге /var/cache/cbr/ Использовать их можно, например, так:
<?php
$data = json_decode(file_get_contents('/var/cache/cbr/daily_json.js'));
echo "Обменный курс USD по ЦБ РФ на сегодня: {$data->Valute->USD->Value}";
Или так:
import json
with open('/var/cache/cbr/daily_json.js') as data_file:
data = json.load(data_file)
print(data['Valute']['USD']['Value'])
Может это выход из положения? у меня есть хостинг может там как что сделать? |
Цитата:
if(PHP_SAPI == 'cli') {
//установить директорию, все необходимые подключения производить относительно этой директории
chdir(dirname(__FILE__));
//получение курса доллара
$prev = date('d/m/Y', strtotime('-1 day')); //предыдущая дата
$curr = date('d/m/Y'); //текущая дата
$xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.$prev.'&date_req2='.$curr.'&VAL_NM_RQ=R01235');
$usd_prev = $xml->Record[0]->Value; //курс за предыдущую дату
$usd_curr = $xml->Record[1]->Value; //курс за текущую дату
//здесь сохранить полученные курсы
//если сохранять не в базе, то в закрытой от прямого доступа директории
}
Этот скрипт должен выполнять планировщик в 0 часов. Второй скрипт должен быть скриптом отдающим курсы, которые он должен получать из сохраненных. И это будут index.php. В нем код:
header('Access-Control-Allow-Origin: имя вашего домена, который запрашивает курс');
//получить сохраненные курсы, и отдать их в виде JSON
//как конкретно, зависит от того как сохранялось
//отдаем курс клиенту и выход
exit($currency);
|
Так))
Я создаю два файла PHP, первый файл это первый скрипт, второй файл это второй скрипт. Добавляю в папку Заливаю в папочку на свой хостинг Ставлю таймер в кроне на индех.пхп А дальше что? как отдуда вытянуть на мой сайт где нету php в формате $ 56.77 ▲ Нужно наверно какойто скрипт создать, который будет передавать данные в блок? |
Скрипт первый, это тот который должен запускать cron. Если планировщик сервера позволяет запускать скрипты из закрытых папок, то хорошо, создать такую папку, например, current, в которую и поместить этот скрипт. В эту же папку поместить и файл .htaccess с содержанием:
<Files *> Deny from all </Files> Пусть сохранение полученного курса будет в файл, в json формате. То есть со строки 15 этого файла должно быть:
file_put_contents('current.json', json_encode['usd'=>[
date('j.n.Y', strtotime($curr)) => $usd_curr, //текущая дата => курс
date('j.n.Y', strtotime($prev)) => $usd_prev //предыдущая дата => курс
]]);
Клиент обращается к этому домену, то есть будет запрос к index.php. В нем заменить exit($currency) на:
exit(file_get_contents('current/current.json'))
Клиент получит json
{usd: {
'8.2.2018' : 'xx.xxxx',
'7.2.2018' : 'xx.xxxx'
}
}
|
laimas,
Верно всё сделал? |
| Часовой пояс GMT +3, время: 09:21. |