Поблочный вывод действий на экран!

Тема в разделе "PHP", создана пользователем Acidrayne, 18 мар 2010.

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

    Acidrayne

    Регистр.:
    30 сен 2007
    Сообщения:
    296
    Симпатии:
    20
    Подскажите пожалуйста, нужно чтобы за кадый проход цикла выводилась информация на экран, а не в конце работы скрипта. Как это можно реализовать ??

    например:

    PHP:
    for ($i$i<$a$i++){

    echo 
    "прошли один цикл"; }
    тоесть раз прошли цикл получили информацию об этом !

    Зараннее благодарен с уважением!
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    функции flush(), ob_flush() плюс дополнение строки пробелами до нескольких килобайт.
     
  3. zss

    zss Постоялец

    Регистр.:
    22 июн 2007
    Сообщения:
    55
    Симпатии:
    6
    Скрипт выполяется на сервере,
    а информация выводится на клиенте,
    поэтому простыми циклами результат не получить.
    Нужно организовывать обновление страницы клиента.
    Думаю, лучше это сделать на Javascript.
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Откуда только такие знатоки появляются. :mad:

    Не знаешь чего-то - помолчи, за умного сойдёшь.
     
  5. Acidrayne

    Acidrayne

    Регистр.:
    30 сен 2007
    Сообщения:
    296
    Симпатии:
    20
    пишу так:

    Код:
    for ($i; $i<$a; $i++){ 
    
    echo "прошли один цикл"; 
    flush();} 
    Но результат такой же , старница ждет и появляется потом полностью, пробовал таже ob_get_contents результата нет :(
     
  6. zss

    zss Постоялец

    Регистр.:
    22 июн 2007
    Сообщения:
    55
    Симпатии:
    6
    Этот раздел как раз и предназначен для обмена знаниями,
    так что жду от Вас работающий пример.
     
  7. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    наверное код слишком быстро выполняется чтоб заметить, попробуй добавить паузу sleep(секунд)

    PHP:
    <?
    for (
    $i=0$i<10000$i++){ 

    }
    echo 
    "прошли один цикл<br>"
    flush();
    sleep(2);
    for (
    $i=0$i<10000$i++){ 

    }
    echo 
    "прошли два цикл<br>"
    flush();
    ?>
     
    Acidrayne нравится это.
  8. Acidrayne

    Acidrayne

    Регистр.:
    30 сен 2007
    Сообщения:
    296
    Симпатии:
    20
    Я про слип и не додумался, просто в цикле у меня скачиваются файлы и я не думал, что все происходит так быстро!
     
  9. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Пожалуйста.
    PHP:
    <?php

    $flush 
    str_repeat(' '4100);

    for(
    $i 1$i 11; ++$i) {
        echo 
    $i$flush'<br />';
        
    flush();
        
    sleep(1);
    }
    PS на винде может не работать.
     
  10. Acidrayne

    Acidrayne

    Регистр.:
    30 сен 2007
    Сообщения:
    296
    Симпатии:
    20
    На винде реботает приекрасно и на линуксе тоже!
     
Статус темы:
Закрыта.