2012-03-01 6 views
2

Кажется, что несмотря на все, что я сделал, пытаясь заставить его работать, он просто не работает.PHP буферизация вывода на XAMPP

Вот что все, что я сделал:

  1. output_buffering = 4096
  2. zlib.output_compression = Off
  3. Пробовал с помощью ob_implicit_flush();
  4. Пробовал использовать ob_flush();
  5. Уменьшение размера буфера в INI устанавливающих output_buffering к

Ниже приводится код, который я пытаюсь работать (в основном выходной линии каждый 1 секунду), но я» м получить весь выход через 15 секунд.

С ob_implicit_flush():

<?php 
ob_implicit_flush(); 

for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    sleep(1); 
} 

с использованием ob_start() и ob_flush() методы:

<?php 
ob_start(); 
for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    ob_flush(); 
} 

есть ли другие настройки PHP, что я пропускаю ? Пожалуйста помоги.

EDIT: Используя пример, ОП в этом так вопрос, он работает: PHP buffer why \r\n

Я вижу, что я должен был сделать str_repeat(), чтобы сгенерировать строку переполнения буфера. Почему ничего из этого не упоминается в руководстве по php? Это действительно процедура?

+0

Этот код выглядит неполным. Я не вижу вызовы набора функций 'ob_' * в контексте образцов. – Treffynnon

+0

Извините, я обновил его сейчас. –

ответ

1

PHP возвращает один ответ на запрос. Если в этом коде есть sleep() звонков, тогда весь ответ будет ждать этих вызовов. PHP не передает ответ обратно в браузер в кусках, даже если вы вставляете один второй сон между print с.

Если вы используете PHP в качестве интерактивной консоли, тогда это может работать и вести себя так, как вы ожидаете.

Смежные вопросы