cron на php

а кто подскажет, как сделать чтобы при каждом новом запуске скрипта, допустим по крону раз в день, скрипт выполнял следуюющую интерацию, цикл "for" допустим
PHP:
for($i=0,$i<10,$i++){}
чтоб за 10 дней выполнились все интерации попорядку?
 
а кто подскажет, как сделать чтобы при каждом новом запуске скрипта, допустим по крону раз в день, скрипт выполнял следуюющую интерацию, цикл "for" допустим
PHP:
for($i=0,$i<10,$i++){}
чтоб за 10 дней выполнились все интерации попорядку?
:eek:
По-моему будет легче записать в файл текущую итерацию, не следующий день считать и инкрементовать, и так каждый день запускать один и тот же скрипт.
 
не понял, ну запишем мы в файл интерацию 1, на следующий день считаем интерацию 1 и опять ее запустим. может есть другое решение, в файлах будет находится массив данных в столбик записаны ключи, каждый день надо брать следуюющий ключ записывать в форму и отправлять. самый простой вариант это через цикл подставлять типа $key[$i] но при запуске он будет подставлять 0 первый элемент массива, а мне надо каждый раз новый сегодня 0 а завтра 1 после завтра 2 и т.д. пока не кончатся элементы в масивве. может как то брать элементы другим способом?
 
PHP:
<?php
$iter = file_get_contents("iteration.tmp");
if($iter > 10)
	exit(0);
/*
	А здесь будет наш "цикл", текущую итерацию мы уже считали - $iter
*/
file_put_contents("iteration.tmp", ++$iter);
?>
И ставим на крон для ежедневного запуска, после 10-го раза - скрипт не будет выполнятся.
2-й вариант, смотрим мою подпись:) И в конце тела цикла вставляем:
PHP:
sleep(60*60*24);
Но естественно в начале кода нужно прописать:
PHP:
ini_set('max_execution_time', 0);
Эти 2 варианта рабочие, но можно придумать и что-то лучше. Вернее нужно, если у вас не установлен crontab - первый вариант не подойдёт. А второй многим и так не понравится.
 
не понял, ну запишем мы в файл интерацию 1, на следующий день считаем интерацию 1 и опять ее запустим. может есть другое решение, в файлах будет находится массив данных в столбик записаны ключи, каждый день надо брать следуюющий ключ записывать в форму и отправлять. самый простой вариант это через цикл подставлять типа $key[$i] но при запуске он будет подставлять 0 первый элемент массива, а мне надо каждый раз новый сегодня 0 а завтра 1 после завтра 2 и т.д. пока не кончатся элементы в масивве. может как то брать элементы другим способом?
Можно использовать Unix.
PHP:
$etalon = floor(time() / (10*24*60*60)); // Изменяется каждые 10 дней
$dni = floor(time() / (24*60*60)); //Дни
$raznica = $dni - $etalon*10;// $raznica - то, что вам нужно
//Можно настроить под конкретные дни…
PS. Надеюсь суть понятна.
 
Назад
Сверху