Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2011, 11h55   #1
Provisoirement toléré
 
Inscription : février 2008
Messages : 308
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 308
Points : 66
Points : 66
Par défaut boucle for +time

bonjour
je suis entrain de faire un boucle pour afficher un message si il'ya une erreur pendant 10 seconde


Code :
1
2
3
4
5
6
7
8
$seconds=10;
 
    for ($i = 1; $i <= $seconds; $i ++) 
 
 
{
//traitement de vérification
}
mai dans ce scripte la lecture de $seconde et comme un entier c'est à dire le traitement ce fait même pas dans 2 seconde
comment je peut faire
une boucle de 10 seconde
merci
rezguiinfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2011, 12h36   #2
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 245
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 245
Points : 1 502
Points : 1 502
il me semble que ce que tu cherches a faire se fait en javascript...
comme la c'est en php, c'est cote serveur.. donc (si t'y arrive (avec sleep() au pire)) le serveur attendra les 10 secondes avant d'envoyer le resultat... et non toutes les secondes, le traitement
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2011, 13h28   #3
Provisoirement toléré
 
Inscription : février 2008
Messages : 308
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 308
Points : 66
Points : 66
Citation:
Envoyé par rezguiinfo Voir le message
bonjour
je suis entrain de faire un boucle pour afficher un message si il'ya une erreur dans ce 10 seconde


Code :
1
2
3
4
5
6
7
8
$seconds=10;
 
    for ($i = 1; $i <= $seconds; $i ++) 
 
 
{
//traitement de vérification
}
mai dans ce scripte la lecture de $seconde et comme un entier c'est à dire le traitement ce fait même pas dans 2 seconde
comment je peut faire
une boucle de 10 seconde
merci
rezguiinfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2011, 13h39   #4
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
?

Comme déjà dit, impossible de faire ça sans javascript, ton script php est effectué sur le serveur avant l'envoi de la page au navigateur, donc au pire, si tu arrivais a travailler avec les secondes (ce qui n'est pas le cas) tu ne ferais qu'envoyer ta page au bout de 10 secondes...

en javascript tu peux utiliser une fonction basée sur un tempo ( regarde du côté de setTimeout() )

Si tu veux vraiment utiliser php pour effectuer un traitement dans ce compte à rebours javascript, il faut utiliser Ajax...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2011, 14h24   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Au pire c'est faisable avec les sockets mais c'est lourd pour un intérêt moindre (?)
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2011, 16h01   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
mais si c'est faisable, mais ca marche pas sur tout les serveurs (output_buffering à Off) :


Code :
1
2
3
4
5
6
7
ob_implicit_flush(true);
 
for($i=0; $i < 10; $i++)
{
    echo $i, ' ';
    sleep(1);
}
ou
Code :
1
2
3
4
5
6
7
8
9
ob_start();
 
for($i=0; $i < 10; $i++)
{
    echo $i, ' ';
    ob_flush();
    flush();
    sleep(1);
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 13h23   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
stealth35 à raison, c'est théoriquement faisable en désactivant l'output buffering (donc en envoyant les données au client/navigateur à chaque echo) mais ça ne s'applique que dans des cas ultra-spécifiques ou PHP à un temps de génération très long.

Mais si c'est, par exemple, pour mettre un compteur sur la page, c'est une mauvaise idée: tu vas displayer le header, puis le contenu vas s'afficher au fur et à mesure de l'éxécution retardée puis le footer va arriver, ce qui va pénaliser la navigation.

Pour ce que rezguiinfo il n'y a effectivement que javascript (eventuellement avec Ajax) que ce soit possible.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h47.


 
 
 
 
Partenaires

Hébergement Web