Posez votre question Signaler

Timer php [Résolu/Fermé]

Xavier - Dernière réponse le 16 déc. 2010 à 22:44
Bonjour

Comment faire pour déclecher une action au bout de x seconde ? En fait, je veux rentrer dans une boucle if au bout de 3 secondes...Comment faire ?
Merci
Lire la suite 

Timer php »

10 réponses
Réponse
+3
moins plus
http://www.php.net/manual/fr/function.sleep.php

Allways close to Open Source...
Johan Daine

JunKy Ripper - 13 févr. 2002 à 10:14
HAHA jisisv !!!!
Ca c'est une bonne idée. Maintenant quand quequ'un me pose une question, je l'envoie sur la doc. C'est le meilleur reflexe possible =)
++ Ripper
Yvonaki - 16 août 2007 à 14:19
je crois que vous n'avez pas bien compris le sens de la question ni même essayé cette fonction dans le cas présent...

la fonction sleep(a) dans un boucle additionne x fois (nombre de lignes) le nombre a pour obtenir un total.
une fois ce total obtenu le program sleep pendant 'total' secondes avant de reprendre pour exécuter tout d'un coup...

admettons que $fichier contienne 10 lignes

while (!feof($fichier)) {
$a=trim(fgetss ($fichier,100)); echo "$a<br>";
sleep(5);
}

cette instruction n'affichera pas 1 ligne toutes les 5 secondes mais bien les 10 lignes après 50 secondes

je cherche également une réponse à cette question...
Réponse
+1
moins plus
Bonjour

C'est peut etre un peu tard pour vous, mais ca pourra peut etre servir a d'autres qui tomberaient ici par hasard:

@Xavier:
Met un sleep avant ton if (qui n'est pas une boucle.. parles de bloc a la limite)

@Yvonaki:
Flush les buffers:
ob_flush(); flush();

@ScoopFinder:
C'est pas si simple.
Sans outputbuffering, suffit de vider les buffers. Si tu utilise l'outputbuffering (activé par défaut dans wamp), effectivement, le contenu du buffer n'est envoyé qu'a la fin de la génération du script.
L'utilisation de l'outputbuffering permet par exemple de balancer des headers ou d'ouvrir une session apres avoir déjà écrit sur le canal de sortie (attention dans le cas de l'utilisation d'UTF8, avec le BOM, voir wikipedia)

Réponse
+0
moins plus
Sache que la page ne s'affiche que quand elle a été entièrement chargée, pour faire un 'timer' tu devra utiliser un language côté client!

Réponse
+0
moins plus
si tu veux en php j'ai fait un tite fonction:

function timer($x)
{
$now = date('U');
$i=0;
while ($now + $x >= date('U')){}
}

ou $x est le nombre de seconde à attendre, donc coté serveur

sinon cotés client tu as en javascript la fonction setTimeout("lafonctionaexecuter()" , x)
ou x est le nombre de milliseconde à attendre avant l'execution de la fonction

Cordialement

Magician ;) bonne continuation

Magician - 16 déc. 2010 à 18:10
XD ma tendre mère m'oblige à aider les plus démunis désolé de vous l'imposer =) mais je prends ta réponse comme un merci ;)
scoopfinder - 16 déc. 2010 à 22:19
Non tu devrais la prendre comme un tais toi... J'ai pas forcément envie de recevoir des mails de notifications pour des messages datant de 2008 !
Surtout que ton code est stupide vu que la fonction sleep(); existe.
Magician - 16 déc. 2010 à 22:44
mdr reinventer la roue peux servir à tous. Maintenant ya la fonction sleep comme tu le dis qui existe aussi. Maintenant remet pas ma mère en question
Ce document intitulé « Timer php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook