Можно ли увеличивать переменную или массив на 1 каждый раз, когда выполняется скрипт?
Например, я выполняю сценарий, и он устанавливает переменную $increment = '1';
Затем я закрываю сценарий и возвращаюсь через 30 минут, чтобы снова выполнить сценарий.
На этот раз переменная должна быть $increment = '2';
Скрипт будет запускаться из cron каждые 30 минут в общей сложности 8 раз.
После восьмого выполнения переменная должна быть перемотана обратно $increment = '1';
Это возможно через сессию? Может ли сеанс быть настроен для Cli Sapi?
Или было бы проще вывести текстовый файл с номером следующего приращения и просто извлечь значение из текстового файла?
Вся помощь приветствуется.
Вы должны будете сохранить значение переменной в энергонезависимом источнике между вызовами скрипта. Кроме того, вам придется учитывать условия гонки, если (как это часто бывает) сценарий может быть вызван практически одновременно.
Лучше всего для этого хранить вашу переменную в базе данных, которая обеспечивает безопасность транзакций. Даже самые дешевые веб-хостеры предлагают какую-либо форму базы данных, которая будет соответствовать этому требованию … особенности зависят от вашей конкретной настройки.
Сохранить значение счетчика в базе данных и при запуске счетчика обновлений скрипта с + 1
Пример скрипта
$conn = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if($query = $conn->query("YOU ACTION QUERY HERE"))
{
// Here you call your actions of script
/* Increment the counter field here. */
$conn->query("UPDATE table SET counter = counter + 1");
}
$conn->close();
Заметка Его простая логика — увеличивать переменную на 1 каждый раз, когда выполняется скрипт.