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

Тема в разделе "PHP", создана пользователем AndyFire, 21 сен 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. AndyFire

    AndyFire

    Регистр.:
    22 май 2008
    Сообщения:
    243
    Симпатии:
    18
    Подскажите, пожалуйста, как вывести на экран информацию в цикле : если использовать стандартный echo "что то на экран", то весь вывод в цикле будет показан на экране лишь после завершения скрипта, а не по ходу выполнения.
    К сожалению, этот вопрос не освещается в книгах, а поиск в интернете ни чего не дал.
     
  2. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    65
    Есть такая замечательная функция - flush() ;)
     
    AndyFire нравится это.
  3. R3$(0®p!0

    R3$(0®p!0 Прохожие

  4. GwPlNicker

    GwPlNicker Создатель

    Регистр.:
    21 июн 2008
    Сообщения:
    22
    Симпатии:
    0
    Это выводится подряд. А если надо чтобы всегда в начале страницы или в строго определенном месте, тогда как???
     
  5. Lonely Wolf

    Lonely Wolf Прохожие

    Тогда на 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>";
    ?>
    
     
  6. GwPlNicker

    GwPlNicker Создатель

    Регистр.:
    21 июн 2008
    Сообщения:
    22
    Симпатии:
    0
    Спасибо, а только на php выходит реализовать такое не получится, да???
     
  7. Lonely Wolf

    Lonely Wolf Прохожие

    Я не видел что бы в пхп было что-то типа clear screen значит получается что нельзя, может в 6-м будет можно.
     
  8. GwPlNicker

    GwPlNicker Создатель

    Регистр.:
    21 июн 2008
    Сообщения:
    22
    Симпатии:
    0
    ок, будем ждать и думать над проблемой.
     
  9. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    А если то что надо выводить записывать, скажем в файл или в базу и с помощью аякса выдергивать значение и вставлять куда надо?
    Я так делал с помощью prototype там есть такая функция. Ajax.PeriodicalUpdater
     
  10. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    65
    О чем вы говорите, коллеги?! Берете и вставляете вывод пхп куда вам надо - в любой див или таблицу на странице:
    Код:
    <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>
    Все работает, как хорошая копия швейцарских часов.
     
    AndyFire нравится это.
Статус темы:
Закрыта.