Boucle While qui ne s'arrête pas !

WRInaute impliqué
Bonjour,
J'ai conçu un script qui exécute quelques fonctions, le script fonctionne à merveille :

Code:
$i=1;
while ($i < 50000000) {
mon code ....
echo"".$i."<br />
$i++;
}

Le problème avec ce code c'est que la page se charge près d'une minute et elle termine sans afficher les $i, le code s'exécutes très bien vu que ça enregistre dans la base de donnée, mais rien ne s'affiche à l'écran et la boucle ne va pas jusqu'à la fin soit 50000000 elle exécute entre 2000 et 5000 tours et s'arrête !

Comment résoudre ce problème ? (boucle ne s'arrête pas et afficher le $i en temps réel)

Merci
 
WRInaute impliqué
j'ai résolu en réduisant le bouclage à 2000, ça marche très bien mais maintenant je veux afficher le $i en temps réel, j'ai utilissé flush() mais ça ne donne rien !

PS : je suis sur un mutualisé linux de LWS, je ne peux pas modifier le php.ini
 
WRInaute accro
Donc essaie de voir si tu peux forcer le délai d’exécution max du script avec set_time_limit() (mais si tu es en safe mode, c'est mort).

Le cas échéant, limite toi à un nombre auquel ça passe et fais un cron.
 
WRInaute impliqué
Je n'ai pas de problème avec le time limite c'est réglé, mon problème maintenant c'est que je veux afficher $i en temps réel (quand la boucle tourne) car le résultat est afficher à la fin quand le script termine, et apparemment flush() ne donne rien !
 
WRInaute impliqué
Voici mon code :
Code:
<?php
$i=1;
while ($i <1000) {
echo "".$i."<br>";
ob_flush();
flush();
$i=$i+1;
}
?>

Voilà, le code ci dessus au lieu qu'il affiche $i ligne par ligne je dois attendre le temps que le script termine et m'envoie le code une bonne fois.
Lien de mon fichier php info : elfanak.com/phpinfolws.php
Pensez vous qu'il existe quelque chose de désactivé dans le php.ini de mon hébergement mutualisé LWS ?
 
WRInaute occasionnel
ET cela?
Code:
<?php
echo str_pad(".",4096);
$i=1;
while ($i <1000) {
echo "".$i."<br>";

flush();
ob_flush();
sleep(2); 
$i=$i+1;
}
?>
 
WRInaute impliqué
Rien c'est la même chose, j'ai copié le code tel qu'il est et ça prend du temps à charger puis affiche tout une seule fois !
 
Dernière édition:
WRInaute passionné
Il est dit que selon la configuration des serveurs, si par exemple ya le module apache qui envoit en GZIP du coup ça marche pas, il veut envoyer tout d'un coup en un zip.
J'en sais rien je répond ca car je l'ai lu.
 
WRInaute passionné
Le code de bossboss marche bien chez moi sous IE et Chrome sur un site de test. Par contre sur un site de prod où j'ai DEFLATE actif, ça ne marche pas. L'idée de FortTraffic est peut-être la bonne.
Essaye en retirant DEFLATE de ton .htaccess.
 
Discussions similaires
Haut