Вопрос вроде говорит, что это все - есть функция, которая делает то же самое, как JavaScript функции SetTimeout() для PHP? Я искал php.net, и я не могу найти ни одного ...Есть функция, аналогичная функции setTimeout() (JavaScript) для PHP?
ответ
Невозможно отложить выполнение части кода в текущем скрипте. Это также не имеет большого смысла, поскольку обработка PHP-скрипта происходит полностью на стороне сервера, и вы просто задержите полное выполнение сценария. Существует sleep()
, но это просто остановит процесс в течение определенного времени.
Вы можете, конечно, запланировать PHP-скрипт для запуска в определенное время с использованием заданий cron и т.п.
Немного сложно объяснить - я хотел был просто приостановить сценарий :) В основном, что я хочу сделать, это «подшутить» за одного из моих друзей. Я сделал ввод, в котором вы вводите свое имя, и когда вы отправляете чат, моделируется и делает его более реалистичным. Я хочу, чтобы сообщения от незнакомца, мой друг «разговаривает с», появлялись один за другим, если вы знаете что я имею в виду :) – Latze
Временные события не имеют смысла, потому что скрипт работает на стороне сервера? Я не следую аргументам. Конечно, они менее полезны в PHP из-за отсутствия параллелизма, но есть ценность в том, что скрипт делает что-то через определенное количество времени или в определенный момент. – Artefacto
@ Latze, похоже, что-то, что вы хотели бы сделать, используя JavaScript на стороне клиента, не так ли? –
Функция sleep
, которая приостанавливает скрипт на определенное количество времени.
См. Также usleep
, time_nanosleep
и time_sleep_until
.
было бы неплохо смоделировать этот код в php: http://hastebin.com/rujakezuco.lisp. сон блокируется, тайм-ауты - нет. – Dmitry
PHP не управляется событиями, поэтому setTimeout не имеет большого смысла. Вы наверняка имитируете его, и на самом деле кто-то написал Timer class, который вы могли бы использовать. Но я буду осторожен, прежде чем вы начнете программировать таким образом на стороне сервера в PHP.
Но у php есть инструменты, чтобы сделать ваш конкретный скрипт управляемым событием. например, запускать php через консоль, вы можете планировать несколько событий в разное время, на данный момент имеет смысл иметь тайм-ауты. – Dmitry
Не совсем, но вы можете попробовать tick count function.
Если вы не использовали AJAX для получения live
запросов, PHP не был бы предпочтительным языком для этой проблемы. Сценарии PHP не hang
и ждут ответа. Они не настойчивы. Javascript потребуется.
Даже для розыгрыша javascript функция AJAX javascript, соединенная с PHP-скриптом для синтаксического анализа ввода и ответа, будет именно то, что вам нужно. Вы даже можете связать это с функцией sleep
в php, чтобы сделать ее более реалистичной. Кроме того, я бы подготовил кучу разных операторов для синтаксического анализа сервера, вы могли бы установить размер sleep
времени, необходимого для каждого оператора. Например:
MYSQL DATABASE Пример:
| ID | SLEEP | STATEMENT |
| 1 | 3 | Hello |
| 2 | 10 | I have been alright, nothing new. |
| 3 | 20 | This is a really long message that takes 20 seconds to type |
Таким образом, вы могли бы разобрать его следующим образом:
$query = mysql_query("SELECT * FROM `responses` WHERE `id`='3'");
$array = mysql_fetch_array($query);
sleep((int)$array['sleep']); //convert sleep time to integer, sleep.
die($array['statement']); //print the statement back to AJAX function
, если вам нужно, чтобы сделать действие после того, как вы выполнить некоторый PHP код, который вы можете сделать это с эхом
echo "Success.... <script>setTimeout(function(){alert('Hello')}, 3000);</script>";
поэтому через некоторое время в клиенте (браузере) вы можете сделать что-то еще, например, перенаправление на другой php-скрипт, например, или эхо-предупреждение
http://php.net/manual/en/class.evtimer.php, вероятно, вы ищете функцию, называемую в течение заданных интервалов, аналогичную setInterval в javascript. это расширение pecl, если у вас есть whm/cpanel, вы можете легко установить его через страницу установки программного обеспечения/расширения.
Я этого не заметил, начиная с 2010 года, и класс evtimer начал кодироваться в 2012-2013 годах.так как обновление старого вопроса, теперь есть класс, который может сделать это аналогично javascripts settimeout/setinterval.
Несколько вещей, которые я хотел бы отметить о таймерах в PHP:
1) Таймеры в PHP имеет смысл при использовании длительных сценариев (демонов и, возможно, в сценариях CLI). Итак, , если вы не разрабатываете такое приложение, вам не нужны таймеры.
2) Таймеры могут блокироваться и не блокироваться. Если вы используете sleep()
, то это таймер блокировки, потому что ваш скрипт просто зависает в течение определенного времени. Для многих задач блокировка таймеров в порядке. Например, отправка статистики каждые 10 секунд. Это нормально, чтобы блокировать сценарий:
while (true) {
sendStat();
sleep(10);
}
3) неблокируемые таймеры имеют смысл только в управляемых событиях приложений, как WebSocket-сервер. В таких приложениях событие может происходить в любое время (например, входящее соединение), поэтому вы не должны блокировать свое приложение с помощью sleep()
(очевидно). Для этой цели существуют библиотеки циклов событий, такие как reactphp/event-loop, что позволяет обрабатывать несколько потоков неблокирующим образом, а также имеет функцию таймера/интервала.
4) Возможны неблокирующие таймауты в PHP. Он может быть реализован с помощью функции stream_select()
с параметром тайм-аута (см., Как он реализован в reactphp/event-loop StreamSelectLoop::run()).
5) Есть PHP расширения как libevent
, libev
, event
, которые позволяют реализовать таймеры (если вы хотите идти хардкор)
- 1. Есть ли функция Javascript, аналогичная функции JSON_DECODE от PHP?
- 2. Есть ли функция Javascript, аналогичная функции Python Counter?
- 3. Есть функция, аналогичная функции isset() PHP в Go?
- 4. аналогичная функция взрыва php в javascript?
- 5. Есть функция, аналогичная функции «np.outer» для векторного/матричного «внешнего» продукта?
- 6. Аналогичная функция для CONTAINS
- 7. аналогичная функция для http_post_fields?
- 8. Есть ли аналогичная функция для C# Select() в JavaScript?
- 9. Есть ли аналогичная функция для substr_count?
- 10. PYTHON: Есть функция, аналогичная ast.literal_eval()?
- 11. setTimeout функция в javascript
- 12. Есть ли функция, аналогичная mysql_real_escape_string для библиотеки sqlsrv php?
- 13. аналогичная функция для str_replace php в python?
- 14. Аналогичная функция в PHP для css @media?
- 15. У jquery есть функция ajax, аналогичная функции Ajax.periodcalUpdater прототипа?
- 16. Есть функция, аналогичная функции jquery inempt() в React?
- 17. есть функция, аналогичная этой функции в любом C lib?
- 18. javascript, php, mysql и settimeout
- 19. Есть ли функция, аналогичная функции 'impixelinfo()' MATLAB ', доступная в OpenCV?
- 20. функция JavaScript SetTimeout не работает
- 21. Javascript setTimeout Функция продолжает работать
- 22. Есть ли эквивалент vbscript для setTimeout Javascript?
- 23. Аналогичная функция как attr() с параметром для функции обратного вызова
- 24. Отмена функции JavaScript setTimeout
- 25. Использование SetTimeout для задержки функции в JavaScript
- 26. Функция SQL Regex, аналогичная функции REGQL MySql
- 27. есть функция toSourceString() для функции в Javascript?
- 28. Javascript SetTimeout вопрос функции
- 29. JavaScript Функция Функция Доступ Переменная в setTimeout
- 30. Аналогичная функция для Apple Continuity для Windows
@KennyTM - Почему это важно? ... – Alexander
@ TheLife, чтобы люди могли найти реальное решение проблемы OP? :) –