Вывод информации по ходу выполнения скрипта

Статус
В этой теме нельзя размещать новые ответы.

AndyFire

Полезный
Регистрация
22 Май 2008
Сообщения
241
Реакции
19
Подскажите, пожалуйста, как вывести на экран информацию в цикле : если использовать стандартный echo "что то на экран", то весь вывод в цикле будет показан на экране лишь после завершения скрипта, а не по ходу выполнения.
К сожалению, этот вопрос не освещается в книгах, а поиск в интернете ни чего не дал.
 
Есть такая замечательная функция - flush() ;)
 
Это выводится подряд. А если надо чтобы всегда в начале страницы или в строго определенном месте, тогда как???
 
Тогда на javascript делаешь:
Код:
<div id="flush">Начали...</div>
<?php
for($i=0;$i<=100;$i+=20){
  echo "<script>document.getElementById('flush').innerHTML = 'Работаем ".$i."%';</script>";
  flush();
  sleep(1);
}
echo "<script>document.getElementById('flush').innerHTML = 'Готово!';</script>";
?>
 
Спасибо, а только на php выходит реализовать такое не получится, да???
 
Я не видел что бы в пхп было что-то типа clear screen значит получается что нельзя, может в 6-м будет можно.
 
ок, будем ждать и думать над проблемой.
 
А если то что надо выводить записывать, скажем в файл или в базу и с помощью аякса выдергивать значение и вставлять куда надо?
Я так делал с помощью prototype там есть такая функция. Ajax.PeriodicalUpdater
 
О чем вы говорите, коллеги?! Берете и вставляете вывод пхп куда вам надо - в любой див или таблицу на странице:
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Flush() everywhere</title>
</head>
<body>

<table border="1" width="100%">
  <tr>
    <td width="50%" height="200" valign="top">Printing:</td>
    <td valign="top"></td>
  </tr>
</table>

<div style="border:2px solid #c00;">
  <?php
    ob_start();
    for ($i=0;$i<50;$i++) {
        echo 'printing...<br />';
        ob_flush();
        flush();
        usleep(100000);
     }
  ?>
</div>
  
</body>
</html>
Все работает, как хорошая копия швейцарских часов.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху