Как работает построчный вывод в браузер, на PHP?

Статус
В этой теме нельзя размещать новые ответы.
И fflush($fh) после вывода строки в браузер - это вызовет немедленное ее отображение в браузере.

Мне и надо чтоб каждая строка немедленно выводилась в браузер.
Без обновления страницы.

Например есть у меня в базе данных или в файлике,не важно.

5 мб информации. ну допустим 1 миллион слов.
Так вот они выводяться в браузер через несколько минут, когда скрипт отработает полностью.

А мне надо чтоб выводилось каждое слово,после каждого прохода цикла. Тоесть не ждать пока все выведеться а выводить по одному
есть у меня скрипт один могу закинуть и показать вам пример.
 
Я делал такого рода задачу с помощью аякса. Первый аякс запрос - берешь кол-во слов(записей) для счетчика, следующие аякс запросы в цикле с уменьшением счетчика, ну еще и прерывание можно добавить по esc...
 
Можно так:
Код:
<?php
$file = fopen("file.txt", "r");
while(!feof($file))
  {
  echo fgets($file). "<br />";
  }
fclose($file);
?>
 
так не пойдет, т.к. рез-т увидишь только после отработки скрипта
 
Мне и надо чтоб каждая строка немедленно выводилась в браузер.
Без обновления страницы.

Например есть у меня в базе данных или в файлике,не важно.

5 мб информации. ну допустим 1 миллион слов.
Так вот они выводяться в браузер через несколько минут, когда скрипт отработает полностью.

А мне надо чтоб выводилось каждое слово,после каждого прохода цикла. Тоесть не ждать пока все выведеться а выводить по одному
есть у меня скрипт один могу закинуть и показать вам пример.

Ну... мы тут голову ломаем... а ведь между тем браузеры по-разному все устроены. Та же опера или фаерфокс могут выводить недогруженный контент, рендеря его по-ходу. А вот осёл так не делает из принципа. Упёртый он.

Так что... Видимо никак.
 
Учитесь пользоватся поиском и будет вам счастье.

Для просмотра ссылки Войди или Зарегистрируйся
Здесь есть все ответы на данную тему. Копировать инфорамацию с сайта не вижу смысла в кратце могу показать список функции которые работают с выводом:

flush -- Освобождает (выводит) буфер вывода
ob_clean -- Очищает буфер вывода
ob_end_clean -- Очищает буфер вывода и выключает буферизацию вывода
ob_end_flush -- Освобождает (выводит) буфер вывода и выключает буферизацию вывода
ob_flush -- Освобождает (выводит) буфер вывода
ob_get_clean -- Получает текущее содержимое буфера, и очищает текущий буфер вывода
ob_get_contents -- Возвращает содержимое буфера вывода
ob_get_flush -- Освобождает буфер выводаr, возвращает его как строку и выключает буферизацию вывода
ob_get_length -- Возвращает длину буфера вывода
ob_get_level -- Возвращает уровень вложенности вывода буферизующего механизма
ob_get_status -- Получает статус буферов вывода
ob_gzhandler -- Функция обратного вызова ob_start gzip буфера вывода
ob_implicit_flush -- Включает или отключает неявный сброс буфера вывода
ob_list_handlers -- Перечисляет все используемые обработчики вывода
ob_start -- Включает буферизацию вывода
output_add_rewrite_var -- Перезаписывает значения URL
output_reset_rewrite_vars -- Сбрасывает перезаписываемые значения URL
 
Если совсем лень лезть в маны, то вот тебе такое решение:

Код:
<?php
$file = fopen("file.txt", "r");
while(!feof($file))
  {
   ob_start();
   $f = nl2br(fgets($file));
   echo $f;
   flush();
   ob_end_flush();
   usleep(100000);
  }
fclose($file);
?>

usleep использовал для визаулизации на локалке. можно убрать
 
Старая тема, а ответа конкретного нет...:ah:
Как выводить в браузер?

PHP:
for ($i=0; $i<count($str); $i++)
{
...
echo $str[$i];
echo "\n";
}

в итоге выведится что-то типа:
Код:
465
6548
45255
4545
4545
...

Таких строчек около тысячи выведится. Ждать довольно долго нужно, пока выполнится скрипт, как организовать, чтобы выводилось построчно?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху