<?

function my_cron_script() {
/*
   Здесь нужно поместить команды, которые будут выполняться раз в 5 минут.
   Представьте, что эта функция - мини программа, поэтому пишите все только 
   тут. Желательно сделать наиболее быстрой, т.к. браузер посетителя
   будет дожидаться (когда проходят очередные 5 минут) завершения
   работы всей программы. В общем, желательно, чтобы функция
   работала не болле 10 секунд.
*/
}


function check() {

   //  Эту функцию /вызов check()/ *нужно*:
   //   - вставить во все ваши файлы
   //   - желательно в конец
   //  Эту функцию *можно*:
   //   - ни разу не вызывать
   //   - вызывать два и более раз
   //  Если эта функция решит, что 5 минут прошло, она 
   //  запустит 1 раз my_cron_script().

   // Надо создать flag.txt и дать на него права на запись для PHP.
   // Как это сделать, написано в http://php.spb.ru/php/chmod.html

   // Получаем время модификации (из атрибутов файла):
   $t=filemtime("flag.txt"); 

   // Цифра 5 в этом примере - 5 минут
   if ( $t + 5*60 < time() ) {
      
      // Есть вероятность, что параллельно с нами работает еще куча 
      // таких же скриптов. Чтобы не допустить ошибки параллельного 
      // выполнения (http://php.spb.ru/php/flock.html), мы заблокируем 
      // файл и еще раз проверим дату обновления из него.
      $f=fopen("flag.txt","r+") or 
         // Если вы не дадите прав для flag.txt, увидите такую ошибку на экране:
         die(&quot;</pre>
</table>
<h1>ERROR in function check()</h1>
");

      // Блокируем доступ к файлу   
      flock($f,2);

      // Читаем время обновления уже из файла
      $t=fgets($f,100);

      // "Генеральная" проверка времени
      if ( $t + 5*60 < time() ) {
         
         // Если условие выполнилось, то закончились очередные 5 минут 
         // и нужно запустить скрипт my_cron_script(). Еще дополнительно
         // сбросим буфер с текстом, накопившемся за время выполнения 
         // программы. 
         flush();
         my_cron_script();

         // Пишем время модификации файла обратно в него. Атрибуты файла
         // (filemtime), которыми мы пользовались в начале этой фунции
         // обновляются сами собой (это делает ОС).

         // Переместить указатель записи на начало файла:
         ftell($f,0);
         
         // Записать время и пару пробелов, чтобы затереть старое число
         fputs($f,time()."    ");

      }

      // Закрываем файл, выходим из функции. Блокировка снимиться автоматически.
      fclose($f);

   }

}

?>