Выполнение Cron задачи без использования хостингового Cron’a — когда это по каким-либо причинам невозможно или нежелательно.
Например, нужно с определенной периодичностью получать что-то с удаленного ресурса, или обновлять какую-то внутреннюю информацию на сайте. Вставляется либо перед <!DOCTYPE>
, либо в нужное место страницы/шаблона.
Пример использования:
- Вариант 1 ↴
<?php $filename = 'check_time.txt'; // задаем контрольный файл if (file_exists($filename)) { // существует ли он $time_change = file_get_contents("check_time.txt"); // получаем записанную временную метку $gap = time() – 60 * 60 * 1; // устанавливаем интервал — раз в час (то есть, при запросе (обновлении) страницы с кодом после указанного интервала информация обновится) if ($ltime_change < $gap) // если записанная метка меньше интервала { include "script.php"; // вызов нужного скрипта // или через file_get_contents("script.php"); file_put_contents("check_time.txt", time()); // записываем новую временную метку } } ?>
⇥ Или с автоматическим созданием файла:
<?php $time_change = file_get_contents("check_time.txt"); // получаем записанную временную метку $gap = time() – 60 * 60 * 1; // устанавливаем интервал — раз в час (то есть, при запросе (обновлении) страницы с кодом после указанного интервала информация обновится) if ($ltime_change < $gap) // если записанная метка меньше интервала { include "script.php"; // вызов нужного скрипта // или через file_get_contents("script.php"); file_put_contents("check_time.txt", time()); // записываем новую временную метку } ?>
- Вариант 2 ↴
Например, нужно обновлять информацию раз в сутки (то есть, когда первый посетитель в новых сутках запросит/обновит страницу с кодом):
<?php $filename = 'new_day.txt'; // задаем контрольный файл if (file_exists($filename)) { // существует ли он $now_date = date("dFY"); // дата на сейчас $check = date ("dFY", filemtime($filename)); //дата последнего изменения контрольного файла if($check != $now_date) { // если даты не совпадают include "script.php"; // вызов нужного скрипта // или через file_get_contents("script.php"); file_put_contents("new_day.txt", time()); //обновляем контрольный файл } } ?>
Комментарии:
Дмитрий#
Вот только эта штука врят ли крон заменит, да если будут люди на сайте, а если в этот день никого не было ? тогда и контент собственно не обновится
coder.hol.es /* Админ */#
Если на сайт никто не зайдет (хотя боты все равно зайдут) – то обновление контента и не нужно — для кого обновлять?)