sleep
Задерживает выполнение программы на указанное количество seconds .
Parameters
Остановить время в секундах.
Return Values
Возвращает ноль в случае успеха или false в случае ошибки.
Если вызов был прерван сигналом, sleep () возвращает ненулевое значение. В Windows это значение всегда будет 192 (значение константы WAIT_IO_COMPLETION в Windows API). На других платформах возвращаемое значение будет количеством секунд до сна.
Errors/Exceptions
Если указанное количество seconds отрицательно, эта функция сгенерирует E_WARNING .
Examples
Пример # 1 сна () Пример
// current time echo date('h:i:s') . "\n"; // sleep for 10 seconds sleep(10); // wake up ! echo date('h:i:s') . "\n"; ?>
Этот пример выдаст (через 10 секунд)
See Also
- usleep () — Задержка выполнения в микросекундах
- time_nanosleep () — Задержка на количество секунд и наносекунд
- time_sleep_until () — Заставляет скрипт засыпать до указанного времени
- set_time_limit () — Ограничивает максимальное время выполнения
PHP 8.2
(PHP 4 4.1.0,5,7,8)sinh Гиперболический синус Возвращает гиперболический синус числа num,определяемый как (exp(num)exp(-num))/2.
(PHP 4, 5, 7, 8) snmp_get_quick_print Извлекает текущее значение параметра библиотеки NET-SNMP. Возвращает текущее значение, сохраненное в библиотеке NET-SNMP для
(PHP 4 4.3.3,5,7,8)snmp_get_valueretrieval Возврат метода,которым будут возвращаться значения Эта функция не имеет параметров.
заставить PHP ждать завершения функции?
Предполагается, что до тех пор, пока blahblah.txt изменится, подождите еще пять секунд после этого, затем распечатайте «сделанный», однако он выдает «сделан» через пять секунд, независимо от того, действительно ли файл был изменен.
3 ответа
PHP является однопоточным, что означает, что он выполняет одну команду за раз, прежде чем двигаться дальше. Другими словами, PHP, естественно, ждет завершения функции до того, как она будет продолжена с помощью следующего оператора.
Я попытался выполнить свой код на своей машине, и он должным образом ждал и дождался, пока я не изменю файл до завершения функции и не покажу сообщение.
Я даже не вижу ничего в вашем коде, который может быть неудачным. Поскольку создание $lfilemod выполняется таким же образом, как и проверки в while цикл, условие этого цикла будет возвращать TRUE , и выполнить, даже если возникла проблема с файлом ( filemtime будет возвращать FALSE на обеих ошибок, поэтому условие будет читать (FALSE == FALSE , что, очевидно, TRUE ).
Создает ли ваш PHP-скрипт файл вообще, прежде чем запускать этот цикл? Если это так, то начальное значение, возвращаемое filemtime может быть временем модификации с момента начала запуска скрипта. Когда вы запускаете clearstatcache в цикле, вы получите новое время модификации, вызванное вашими изменениями ранее в скрипте.
- Попробуйте запустить clearstatcache перед установкой значения $lfilemod чтобы вы знали, что это значение чистое, и что вы сравниваете яблоки с яблоками с тем, что проверяется в цикле.
- Убедитесь, что файл действительно не изменяется. Попробуйте поместить пару строк отладки в начале и конце вашего кода, который печатает последнее время модификации файла, а затем сравнивает их самостоятельно, чтобы узнать, сообщает ли PHP о времени изменения времени.
- Это должно быть само собой разумеющимся, но вы должны убедиться, что PHP настроен на отображение всех ошибок во время разработки, поэтому вы сразу же показываете, когда и как все происходит неправильно. Убедитесь, что display_errors параметр включен On в вашем php.ini файл (или используйте ini_set() , если вы не можете изменить сам файл), и что ваш error_reporting() установлен в E_ALL | E_STRICT E_ALL | E_STRICT для PHP
Повторите этот код с этими изменениями. Если вы видите, что файл действительно изменяется, то вы знаете, что ваш код работает. Если файл не изменяется, вы должны, по крайней мере, иметь ошибку, которую можете найти, или спросите нас здесь.
Спасибо! Файл был изменен после запуска сценария, но до вызова waitforchange (), поэтому я добавил clearstatcache () в начало waitforchange, и он работает! Мои также настройки php.ini были установлены неправильно. Это не было причиной проблемы, но это может помочь в будущем.
Как насчет записи файла? Я делю большой CSV-файл на несколько меньших версий, но мой код пытается открыть меньшие, прежде чем они будут созданы. Запись в файл не относится?
Код выглядит хорошо; за исключением точки с запятой (;) после строки waitforchange. Я тестировал размещение (;) там, и скрипт вел себя так, как предполагалось. Может быть, это преступник? Я нахожусь в убытке, хотя объясню, как вы получили свой код для выполнения с этой ошибкой.
не может быть Тот код, который я ввел, не был скопирован из моего реального кода, он просто очень похож. Мой настоящий код имеет точку с запятой.
Если точки с запятой не было в самом скрипте, код вообще не запустился бы. PHP сообщит об ошибке разбора, которая является фатальной ошибкой, которая может прервать выполнение сценария еще до его запуска.
Попробуйте назначить вызов функции переменной. Я думаю, что он не ждет возврата в противном случае.
Ещё вопросы
- 0 Разбор HTML от определенной начальной точки до определенной конечной точки?
- 0 переменная объема не изменяется — angularjs
- 1 Как использовать GridView AutoGenerateDeletebutton
- 1 Выражение. Вызовите группу, затем выберите?
- 0 Получить значение атрибута внутри тега ввода с помощью JavaScript
- 0 Phalcon Builder SQL Multi столбец таблицы не работает
- 0 Аккордеонные данные сетки
- 0 jQuery Mobile: уберите метку с диапазона и сделайте слайдер шире
- 1 Как панды заменяют значения NaN средним значением, используя groupby [duplicate]
- 1 Доступ к функциям внутри замыкания из импортированных модулей
- 1 Форматировать строку даты в JavaScript
- 0 Проблема межсайтового скриптинга
- 0 Почему эта переменная работает в nav, а не в теге body?
- 0 Загадочная проблема в моем PHP-скрипте
- 1 Переучите глубокое обучение, добавив еще несколько изображений в набор данных
- 0 заставить код jquery работать для динамически добавляемого контента
- 1 Почему TextView не может отображать форматированный текст, ссылающийся на ресурсы Android?
- 1 Доступ к PropertySources в приложении Spring 3.1 xml
- 0 Angular — Как изменить значение свойства $ scope с помощью функции в $ scope
- 0 C # (ASP .NET) исключение десериализации
- 0 Проблемы с использованием cin.peek () и определения конца ввода с помощью cin.peek ()
- 0 AngularJS 1.4.1 ng-submit не запускается после сброса формы
- 0 смешанные типы данных std :: vector [дубликаты]
- 0 Ошибка MySQL в NodeJS: невозможно подключиться как root
- 1 Почему операции над Path реализованы в виде статических методов?
- 1 Как получить индекс в Datatable
- 0 создать класс с помощью ввода из cin, полученного с помощью оператора >>
- 0 Как я могу обновить несколько строк MySQL?
- 1 При загрузке изображения с использованием XmlHttpRequest я получаю эту ошибку
- 1 Панды read_csv для gziped файла не выводят числовые типы столбцов
- 1 Python3 параллельный процесс opencv видеокадры
- 0 yii загружать элементы CRUD в другое место
- 2 Я получаю утечку памяти, когда начинаю переход с общими элементами из элемента утилизатора
- 1 Удаление активности запуска из стека на pendingIntent
- 1 Как добавить комментарий в ревизионную сущность?
- 0 Qt Creator / C ++ имеет смысл в этом случае использовать valgrind
- 0 doctrine2, получить связанные данные с обратной стороны
- 1 Не может наследовать внутри того же пакета в Java
- 0 Codeigniter — обязательное поле для проверки формы 2 с несоответствующим значением
- 0 Стиль иконок панели поиска
- 0 Попытка получить изображение профиля пользователя из базы данных MySQL.
- 1 подписка на изменения свойств в View throws ArgumentNullException
- 1 Создание прокручиваемого «графика» в c # (визуализация данных)
- 1 Как я могу показать сообщение об ошибке в окне сообщения в C # исключения SQL (уникальный идентификатор) в 3-уровневом приложении?
- 1 Firebase отстает с обновлением данных — многопользовательская игра
- 0 Как найти повторяющееся значение значения столбца, используя mysql?
- 0 выходная сумма рекурсивной трассировки серии
- 0 Как получить метку времени из строки даты с часовым поясом, PHP?
- 0 Smarty strpos и substr для получения текста после последней косой черты в URL
- 0 MySQL запрос и реляционная таблица