Можно ли по-прежнему использовать буферизацию вывода, если да, то как?
Я искал способ отображения контента в браузере, в то время как php-скрипт выполняет довольно длительный цикл... используя ob_start()
, flush()
, ob_flush()
и ob_end_flush()
. Это не удалось.
Во время исследования php.net Я наткнулся на сообщение пользователя, которое гласило:
"По состоянию на август 2012 года все браузеры, похоже, демонстрируют подход "все или ничего" к буферизации. Другими словами, пока php работает, никакой контент не может быть показан"
.
Далее в сообщении говорится, что все остальные сообщения не имеют отношения к делу. Если это правда, то почему имеет PHP.net отображаются необходимые функции как устаревшие? И если это не так, может ли кто-нибудь порадовать меня, как правильно реализовать буферизацию вывода для простого скрипта:
function simpleFunction() {
for ($i = 0; $i < 10000; $i++) {
$data = $externalJsondata;
if($data == "True")
{
echo ("Output1");
}
else{
echo ("Output2");
};
};
}
simpleFunction();
1 answers
Ответ/Взлом предоставлен: Джо Уоткинсом
function simpleFunction() {
if (!defined('STDOUT'))define('STDOUT', fopen("php://stdout", "w"));
for ($i = 0; $i < 10000; $i++) {
$data = $externalJsondata;
if($data == "True")
{
echo ("Output1");
flush(STDOUT);
}
else{
echo ("Output2");
flush(STDOUT);
};
};
}
simpleFunction();
Спасибо;)