To ensure that usleep() is called with the same argument as the one being tested - a positive number:
<?php
if (!function_exists('time_sleep_until')) {
function time_sleep_until($future) {
$sleep = ($future - microtime(1))*1000000;
if ($sleep<=0) {
trigger_error("Time in past", E_USER_WARNING);
return false;
}
usleep($sleep);
return true;
}
}
?>
time_sleep_until
(PHP 5 >= 5.1.0)
time_sleep_until — Lässt das Skript bis zur angegebenen Zeit schlafen
Beschreibung
bool time_sleep_until
( float $timestamp
)
Lässt das Skript bis zum angegebenen timestamp schlafen.
Parameter-Liste
- timestamp
-
Der Unix-Timestamp, zu dem die Ausführung des Skripts wieder aufgenommen werden soll.
Rückgabewerte
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
Changelog
| Version | Beschreibung |
|---|---|
| 5.3.0 | Diese Funktion ist nun auch unter Windows verfügbar. |
Fehler/Exceptions
Die Funktion generiert eine E_WARNING-Meldung, wenn der angegebene timestamp in der Vergangenheit liegt.
Beispiele
Beispiel #1 Ein time_sleep_until()-Beispiel
<?php
// Gibt false zurück und generiert eine Warnung
var_dump(time_sleep_until(time()-1));
// funktioniert evtl. nur auf schnellen Rechnern, schläft für bis zu 0.2 Sekunden
var_dump(time_sleep_until(time()+0.2));
?>
Anmerkungen
Hinweis: Alle eingetroffenen Signale werden erst ausgeliefert, wenn die Ausführung fortgesetzt wird.
Siehe auch
- sleep() - Programmverzögerung
- usleep() - Programm-Verzögerung in Mikrosekunden
- time_nanosleep() - Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
- set_time_limit() - Legt die maximale Ausführungszeit fest
time_sleep_until
pasha
03-Sep-2009 01:11
03-Sep-2009 01:11
roberto at spadim dot com dot br
16-Dec-2006 03:05
16-Dec-2006 03:05
better implementation
<?php
if (!function_exists('time_sleep_until')) {
function time_sleep_until($future) {
if ($future < time()) {
trigger_error("Time in past", E_USER_WARNING);
return false;
}
usleep(($future - microtime(1))*1000000);
return true;
}
}
?>
ssnoyes at hotmail dot com
25-Nov-2005 07:58
25-Nov-2005 07:58
Implementation for < 5.1 or Windows users
<?php
if (!function_exists('time_sleep_until')) {
function time_sleep_until($future) {
if ($future < time()) {
trigger_error("Time in past", E_USER_WARNING);
return false;
}
sleep($future - time());
return true;
}
}
?>
