PHP

Как задать интервал в РНР?

Можно ли реализовать на пхп следующее:

for (i=0; i<100; i++) {

function func() {
for (i=0; i<100; i++){
b=b+1;
}

setTimeout(func, 1000);

суть вопроса в том чтобы пхп каждую 50 секунд наращивал счетчик на 1, в итоге когда счетчик достигнет 100, то выполнится какое либо действие. (в моем случае кнопка станет не активной)

Функция time() приводит нам время, но мне не нужно время, мне нужно чтоб в любой момент времени счетчик отсчитывал заданное ему время будь это 100 секунд или 100 часов. (Не нужно выводить фразу до нового года осталось 1 день 23 часа. просто чтоб он отсчитывал заданный промежуток времени)
можно конечно. только ведь реализация именно данного вопроса сделает что? сделает то, что результат выполнения на страничке мы увидим лишь через 100 секунд или 100 часов. вот пожалуйста мануал по подобной функции http://php.net/manual/ru/function.sleep.php. а теперь встречный вопрос - как так получилось, что изучая пхп мы даже не пытались узнать принцип работы всего этого cgi и не знаем, что когда мы видим страничку после работы пхп, то пхп уже сдох? рекомендую изучить что такое cgi и принципы работы веб сервера. потом придет понимание о javascript из ответа Деда Мазая
Ришат Каримов
Ришат Каримов
13 437
Лучший ответ
Вова Dno-. Ну так правильно, увидим только тогда, когда все это дело закончится... мне это и надо!
на яваскрипт дело это написать займет 5 мин. но это будет выполнятся на стороне клиента, а мне нужно чтоб оно на сервере выполнялось
PHP не знает ничего о кнопках, это серверный язык, но есть такой алгоритм: ты рендеришь страничку с заблокированной или разблокированной кнопкой в зависимости от состояния счётчика, и тогда кнопка меняет статус только после обновления страницы. Так сделать можно, остаётся только вопрос, у каждого пользователя свой счётчик или он один на всех? Если свой, используй сессии, а если один на всех, то храни его где-нибудь в memcache. Каждые 50 секунд наращивать не стоит, просто запомни время старта и считай, сколько прошло времени к очередному запуску. Если пройдёт 5000 секунд, рисуй активную кнопку.
Эдуард Элоян
Эдуард Элоян
59 996
Вова Dno-. проблема в том что нужно наращивать каждые n-секунд (к примеру каждые 50) и мне кнопка не нужна ( я ее как пример привел для понимания чего хотел бы добиться)

За совет спасибо...
Во-первых, пхп по-умолчанию на это не способен (скрипт можно демонизировать только с изменением глобальных настроек, а это не гуд). И не предназначен для такого.
Во-вторых, какой сакральный смысл в том чтобы пхп-скрипт висел в памяти и бездействовал 99,9% времени? Это выглядит КРАЙНЕ глупо.
Можно просто засунуть в файл/БД/мемкэш timestamp начала отсчета, а в скрипте только считать и возвращать результат деления на timestamp текущего времени.
Vitalij Golybev
Vitalij Golybev
51 574
Вова Dno-. Все опять сводится к текущему времени.... А мне не нужно текущее время. Вопрос был "Возможно ли в пхп (есть ли в пхп) замутить счетчик обычный который будет считать/наращивать i каждые 50 сек. (или полторы секунды) как на яваскрипте.

P.s. Спасибо за совет.
Это делается не в PHP, а на JavaScript. И код в вопросе на JavaScript больше похож.
Для этого есть функции setTimeout и setInterval
https://learn.javascript.ru/settimeout-setinterval
Вова Dno-. Так я поэтому и спрашиваю "Можно ли это в пхп замутить" ! Про setInterval я сказал в примере описания
Вова Dno-. я хотел обойти "Инфа_РНР" -> "инфа_javascript"->"обработака_на_javascript"->"Инфа_РНР"
почитай различные книги там написано
Ermek Omurbek Uulu
Ermek Omurbek Uulu
117