А больше картинки не нашлось?
Последнее, подробнее и практически полное. Более писать подробности не буду.
1) Создать на сервере папку current, с правами 644 (уточнить у хостера), закрыв прямой доступ к ней через
.htaccess, то есть поместить этот файл в папку current. Этот файл так и называется - с точкой вначале без всяких подстановок kurs и прочей белиберды, а также не имеет никакого расширения. В нем должны быть строки которые я ранее приводил.
2) Узнать - если на сервере cron выполняет скрипты из закрытого каталога, то код следующего файла поместить в папку current под именем current.php. Если нет, то поместить его под этим именем в корень документов (это там где и индексный файл), при этом код этого файла поместить в условие показанное ниже:
<?
if(PHP_SAPI == 'cli') {
//тут далее код файла current.php, естественно без РНР тегов <? и ?>
}
?>
current.php
<?
$dir = dirname(__FILE__);
chdir($dir);
libxml_use_internal_errors();
if($xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.date('d/m/Y', strtotime('-2 day')).'&date_req2='.date('d/m/Y').'&VAL_NM_RQ=R01235')) {
$last = round((float)str_replace(',', '.', current($xml->Record[0]->Value)), 2);
$usd_prev = round((float)str_replace(',', '.', current($xml->Record[1]->Value)), 2);
$usd_curr = round((float)str_replace(',', '.', current($xml->Record[2]->Value)), 2);
chmod($dir, 0777); //уточнить у хостера
file_put_contents('current.json',
json_encode([
'current' => [
'date' => date('j.n.Y'),
'value' => $usd_curr,
'rate' => $usd_curr > $usd_prev ? '▲' : '▼'
],
'previous' => [
'date' => date('j.n.Y', strtotime('-1 day')),
'value' => $usd_prev,
'rate' => $usd_prev > $last ? '▲' : '▼'
]
], JSON_UNESCAPED_UNICODE)
);
chmod($dir, 0644); //уточнить у хостера
}
?>
Курс за три дня, чтобы динамику предыдущего дня получить. JSON ответа:
{"current":{"date":"8.2.2018","value":56.95,"rate":"▼"},"previous":{"date":"7.2.2018","value":57.22,"rate":"▲"}}
index.php
<?
header('Access-Control-Allow-Origin: http://h116641.s08.test-hf.su');
header('Vary: Origin');
header('Access-Control-Allow-Methods: GET');
header('Content-type: application/json; charset=utf-8');
exit(file_exists('current/current.json') ? file_get_contents(current/current.json) : json_encode(false));
?>
<Files *> к РНР отношения не имеет, это в .htaccess, в РНР файле это:
<Files *>
header ....
просто вызовет фатальную ошибку.
На клиенте:
$.getJSON(url домена, function(data) {
if(data) {
//думаю дальше пояснять уже не надо
} else {
//еще не было сохраненного курса на сервере
//решать не мне что делать, но можно на сервер поместит json файл, к котором прописать вручную данные, а cron обновлять будет
}
})