У меня есть простая страница html, которая добавляет записи в файл json, который находится на сервере, через ajax php. Я хотел бы добавить несколько строк php, чтобы каждую ночь в 11:59:59 он сохранял резервную копию исходного файла на сервере (в идеале в папке с именем backup).
Итак, вот что у меня есть в php. По сути, это просто открытие файла json, добавление записи и сохранение. Я хочу убедиться, что у меня есть резервный файл на каждый день в 11:59:59, который сохраняется в папке резервных копий на сервере.
<?php
$theuser = $_POST['theuser'];
$thecontest = $_POST['thecontest'];
$timestamp = $_POST['timestamp'];
$json = file_get_contents('alldata.json');
$data = json_decode($json, true);
$flag = false;
foreach($data as $d){
if ($d['username'] == $theuser && $d['contest'] == $thecontest){
$flag = true;
break;
}
}
if (!$flag){
$data[] = array('username'=> $theuser, 'contest' => $thecontest, 'timestamp' => $timestamp);
file_put_contents('alldata.json', json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
$msg = "yes";
}else{
$msg = "no";
}
echo $msg;die;
?>






Я ничего не знаю о том, какие привилегии у вас есть на сервере или в какой среде вы находитесь, но вы хотите запустить этот скрипт через cron работа.
Вы сможете точно установить время и частоту запуска сценария, а затем выполнять его по расписанию. Но вам нужно иметь доступ к самому серверу, так как это НЕ функция php, а функция вашего сервера. Невозможно сделать это изначально в PHP, если вы не сделали что-то нелепое, например бесконечный цикл, который постоянно проверял время, но это все равно будет тайм-аутом, и я привожу его только в качестве примера.
Я предлагаю вам ознакомиться с заданиями cron, а затем, если у вас есть конкретный вопрос о том, как их реализовать, дайте мне знать, и я буду рад помочь.
Я использую общий хостинг на godaddy и нашел раздел cron jobs в панели администратора. Я добавил следующую строку, которая будет выполняться каждый день. Дайте мне знать, если это имеет смысл. 0 0 * * * cp /calendrier/alldata.json / calendrier / backup В идеале я хотел бы иметь временную метку в конце каждого файла, который копируется в папку резервного копирования.
Для этого вам понадобится задание Cron, поскольку PHP не может работать сам по себе в определенное время.