#php #json #api #variables
#php #json #API #переменные
Вопрос:
Я долго искал, но нигде этого не нашел. Итак, допустим, я делаю вызов API и помещаю некоторые данные в переменную
<?php
$coinData = json_decode(file_get_contents('https://min-api.cryptocompare.com/data/pricemultifull?fsyms=BTCamp;tsyms=USD'), true);
$testVar = $coinData['RAW']['BTC']['USD']['PRICE'];
echo $testVar;
?>
Теперь я получил фактическое значение цены биткойна в реальном времени в моей переменной $ testVar. Это значение постоянно меняется.
Как я могу делать «снимок» этой переменной каждые 24 часа и сохранять это значение данных? Я ничего не могу найти о том, как «сделать снимок» значения из динамической переменной.
Например, через 1 час я хочу сделать «снимок» из переменной $testVar, на данный момент значение равно 5322.15
. Теперь я хочу сохранить это точное значение как 5322.15
автоматическое, чтобы использовать его позже.
Спасибо за помощь!
Комментарии:
1. Вы можете использовать crontab / cronjob.
2. Спасибо за ответ, да, я думаю, что сделаю это с помощью cronjob. Но знаете ли вы, как сделать снимок динамического значения? Я ничего не нашел по этому поводу
3. Снимок, который вы называете, происходит при запуске задания из cron.
4. Понятно, спасибо за ответ
Ответ №1:
Установите задание cron для запуска каждые 24 часа, а затем записывайте значение каждого дня в виде новой строки в таблице базы данных. Например, в следующих строках:
id int NOT NULL,
timestamp datetime NOT NULL,
current_value decimal(10,2) NOT NULL,
Ваше задание cron будет выглядеть примерно так:
<?php
$db= mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);//connect to db
$coinData = json_decode(file_get_contents('https://min-api.cryptocompare.com/data/pricemultifull?fsyms=BTCamp;tsyms=USD'), true);
$current_value = $coinData['RAW']['BTC']['USD']['PRICE'];
$timestamp = date('Y-m-d H:i:s');
$query = $db->prepare("INSERT INTO currency_values (current_value, timestamp) VALUES (?, ?)");
$query->execute([$current_value, $timestamp]);