php Cron задача без Cron'a 

Дата публикации  Дата изменения04.11.13  Комментарии2   Просмотры1128

Выполнение 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()); //обновляем контрольный файл
	}
}
?>

  Размер:  731,00B | Изменен:  4.11.13 | Загрузок: 29
Бесплатные курсы

Категории

Теги: , ,

Оцените материал:

Рейтинг: 0.0/10 (0)


КомментарииКомментарии:

    Дмитрий

     

    Вот только эта штука врят ли крон заменит, да если будут люди на сайте, а если в этот день никого не было ? тогда и контент собственно не обновится

    coder.hol.es /* Админ */

     

    Если на сайт никто не зайдет (хотя боты все равно зайдут) – то обновление контента и не нужно — для кого обновлять?)


Поля, обозначенные как *, обязательны.





Максимальная длина сообщения 900 символов. Осталось   символов

 

Старые →← Новые