ugrás a tartalomhoz

Archívum - Feb 17, 2016 - Fórum téma

ob_flush() flush() nem működik

Theo76 · 2016. Feb. 17. (Sze), 14.32
Sziasztok!

Olyan gondom van, hogy nagy mennyiségű adatot kell feldolgozni php-vel, amit nyomon szeretnék követni. A flush(), ob_flush() tűnt megoldásnak, de valamiért nem csinál semmit... Próbálgattam a php.net/manual-ban lévő példákat, de csak utána iródnak ki a kimeneti adatok, ha a teljes script lefutott.

Ezt a példaprogramot használtam:
  1. <?php  
  2. ob_start();  
  3. echo 'Begin ...<br />';  
  4. for$i = 0 ; $i < 10 ; $i++ )  
  5. {  
  6.     echo .$i . '<br />';  
  7.     ob_flush();  
  8.     flush();  
  9.     sleep(1);  
  10. }  
  11. echo 'End ...<br />';  
  12. ?>  
Egyébként ahogy én akarom majd használni (a kód részletet ajaxal töltöm, be divbe, hogy ne az egész oldalt kelljen frissíteni):
  1. <div id='progress' class='graph'>  
  2.     <div id='barr' style='width:0%'><p id='progressText'>0% kész</p></div>  
  3. </div>  
  4. <?php  
  5. ob_start();  
  6. while(...) {  
  7.     ...  
  8.     echo "  
  9. <script language='javascript'>  
  10.     $('#bar').css('width','{$percent}%');  
  11.     $('#progressText').html('".$percent."%');  
  12. </script>";  
  13.     flush();  
  14.     ob_flush();  
  15.     ...  
  16. }  
  17. ?>  
A rendszer: windows 10 64bit; Apache 2.4.18 64bit; PHP 7.0.3 64bit