Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

php и таймер

379
19 апреля 2010 года
Fima
109 / / 07.11.2002
Ситуация такая:
Есть счетчик скачиваний файла. Значения счетчика хранится в файле.

Необходимо:
Каждый час прибавлять указанное, например "5", значение к итоговой сумме скачиваний.

Как реализовать функцию добавления значения каждый час я не смог придумать.

Подскажите, пожалуйста.
369
08 мая 2010 года
Kesano
451 / / 09.10.2007
Ну а что... можно и покуралесить.

 
Код:
$start_time=124141419; // Здесь указываем UNIX TimeStamp начала отчета. см time();
$cur_time=time(); // Текущее время при запуске скрипта
$diff = $cur_time - $start_time; // разница времени в секундах
$diff = round ($diff / 3600); // теперь в часах

$count= $diff * 5; // указываем значение счётчика часы умножая на 5.

/* тут код работы с файлом для записи значения */

PROFIT!!!
244
19 апреля 2010 года
UAS
2.0K / / 19.07.2006
http://ru.wikipedia.org/wiki/Cron
253
19 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004


Не у всех есть крон, да и не всегда он нужен. Можно и имея только PHP и более-менее посещаемый сайт симитировать что-то вроде крона.

Типа такого:
1. имеем файл, куда пишется счётчик: counter.txt.
2. при запросе страницы (любой) с сервера, проверяем filemtime() этого файл.
3. ежели time() - filemtime() > 3600 - запускаем процедуру под "кроном" - увеличиваем счётчик или ещё что.
- Желательно залочить flock()'ом файл, но он не работает в винде, так что лучше просто сразу сделать touch("counter.txt"), дабы процесс не запустился дважды, пока не закончится текущий.
4. ждём следующего юзера...

244
19 апреля 2010 года
UAS
2.0K / / 19.07.2006
А, ну и так можно, сам когда-то так же пользовался, когда сайты на бесплатных хостингах имел=)
Правда, если посещаемость большая, то лучше в условие тогда добавить что-то типа rand(1,100) == 1. Ну т.е. чтобы не при каждом обращении дергать файл, но это имеет смысл только при большой посещаемости.
253
19 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: UAS
А, ну и так можно, сам когда-то так же пользовался, когда сайты на бесплатных хостингах имел=)


Не обязательно бесплатный хостинг. ИМХО, простые задачи быстрее и менее ресурсозатратно делать через скрипт сайта. Ибо если крон используется для выполнения PHP-скрипта, то он попутно, естесственно, запускает пхп-интерпритатор, тот тянет за собой модули и пр. - а потом скрипт "увеличивает счётчик в файле на единичку" и складывается.
В то же время если это же делать из уже запущенного (посетителем) скрипта, то кроме "увелечения счётчика на единичку" ничего запускать не придётся - уже всё есть.

Цитата: UAS
Правда, если посещаемость большая, то лучше в условие тогда добавить что-то типа rand(1,100) == 1. Ну т.е. чтобы не при каждом обращении дергать файл, но это имеет смысл только при большой посещаемости.


Файл и так создаётся/меняется один раз из-за проверки по времени его изменения filemtime(), так что это выступает вместо рандома (рандомом обычно пользуются в случаях типа сборки мусора в БД/файлах или переиндексации чего-то).

379
07 мая 2010 года
Fima
109 / / 07.11.2002
А подскажите как будет выглядеть код, если средства cron это делать?
244
07 мая 2010 года
UAS
2.0K / / 19.07.2006
Про крон прочитайте сначала, хотя бы что это такое, а потом уже задавайте вопросы.
Код выглядет также, как если бы его писали как обычно.
379
08 мая 2010 года
Fima
109 / / 07.11.2002
Спасибо огромное)))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог