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 — Arrête le script pendant une durée spécifiée
Description
bool time_sleep_until
( float $timestamp
)
Arrête le script jusqu'à l'instant indiqué par le paramètre timestamp .
Liste de paramètres
- timestamp
-
Le timestamp correspondant à la durée de la pause.
Valeurs de retour
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Historique
| Version | Description |
|---|---|
| 5.3.0 | Cette fonction est maintenant disponible sous Windows. |
Erreurs / Exceptions
Si la durée timestamp est dans le passé, time_sleep_until() générera une alerte de niveau E_WARNING.
Exemples
Exemple #1 Exemple avec time_sleep_until()
<?php
// Retourne false et génère une alerte
var_dump(time_sleep_until(time()-1));
// Fonctionnera que sur les ordinateurs rapides, stoppera le script 0.2 secondes
var_dump(time_sleep_until(time()+0.2));
?>
Notes
Note: Tous les signaux seront délivrés une fois la reprise du script.
Note: Cette fonction n'est pas implémentée sous Windows.
Voir aussi
- sleep() - Arrête l'exécution durant quelques secondes
- usleep() - Arrête l'exécution durant quelques microsecondes
- time_nanosleep() - Attendre pendant un nombre de secondes et de nanosecondes
- set_time_limit() - Fixe le temps maximum d'exécution d'un script
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;
}
}
?>
