php echo Как писать в реальном времени на экране? [Дубликат]

double myNum = .912385;
int precision = 10000; //keep 4 digits
myNum= Math.floor(myNum * precision +.5)/precision;
10
задан melih 1 September 2009 в 18:09
поделиться

3 ответа

Используя flush и / или ob_flush , вы должны получить то, что хотите.

Вот быстрая демонстрация:

for ($i=0 ; $i<10 ; $i++) {
    echo "$i<br />";
    ob_flush();
    flush();
    sleep(1);
}

Каждая секунда, номер будет отправлен в браузер, не дожидаясь завершения цикла / сценария. (Без флеша и ob_flush он ждет, пока конец скрипта не отправит результат).

Объяснение, почему вам нужны оба, цитирование со страницы флеша в manual:

Сбрасывает буферы записи PHP и любые внутренние серверы PHP (CGI, веб-сервер и т. д.). Это пытается полностью вытолкнуть текущий вывод в браузер с помощью нескольких предостережений.

flush () не может переопределить схему буферизации вашего веб-сервера и не влияет на клиентскую сторону буферизации в браузере. Он также не влияет на механизм буферизации вывода пользовательского пространства PHP. Это означает, что вам придется вызывать оба ob_flush () и flush (), чтобы очистить выходные выходные буферы, если вы их используете.

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

24
ответ дан Pascal MARTIN 22 August 2018 в 16:39
поделиться
  • 1
    @sshow: Я слышал, что этот вопрос задавал пару раз коллегами, на работе, на самом деле, - и использовал его сам один или два раза - это помогает ^^ – Pascal MARTIN 1 September 2009 в 18:16
  • 2
    Спасибо, отличный ответ! Помогли много. – Martin Pfeffer 9 August 2017 в 14:59

Да, ob_flush должен это сделать. Я делаю это все время на странице LOOONG, когда я хочу посмотреть ход выполнения операции.

0
ответ дан Cristian Cotovan 22 August 2018 в 16:39
поделиться

ob_end_flush http://us.php.net/ob_end_flush

Эта функция опустошает выходной буфер и отключает буферизацию вывода. Все после этой функции сразу отправляются в браузер.

2
ответ дан Will Bickford 22 August 2018 в 16:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: