私はループで長い処理をしており、連続して進捗を出力したいと思います。私は多くの技術を試していないが、それでも運CakePHPでの連続出力
ini_set('output_buffering', 'off');
ini_set('zlib.output_compression', false);
while (@ob_end_flush());
ini_set('implicit_flush', true);
ob_implicit_flush(true);
flush()
を各サイクルで
$this->response->body(function() { /* loop with echo here */ }
で
ラップループをまだブラウザはときに一度、すべてのデータを表示する
while (true)
{
$percents = $do_my_stuff();
echo $percents;
$this->log($percents);
}
スクリプトは終了しました。レスポンスヘッダ:私はそれをどのように
HTTP/1.1 200 OK
Host: localhost:8765
Connection: close
X-Powered-By: PHP/5.6.20
Content-type: text/html; charset=UTF-8
ビルトインサーバー./bin/cake server
を使用してPHP 5.6、CakePHPの3
を行うことができますか?私は、ユーザーが長い間実行できるので、操作の割合を見てほしい。
ありがとうございました。私は長時間実行されているコンソールタスクからのコンソール出力を表示したいので、一般的には「進捗状況」であり、進捗バーではありません。今私はファイルに出力を書き込むとAJAXを介してファイルの内容を読むことに終わったが、私はそのようなソリューションに満足していない。 – Yaroslav
@ Yaroslavあなたは 'passthru'を使ってログファイルの末尾を流すことができます。ここに要点があります:https://gist.github.com/lorenzos/5cbf78a4447e1a98b59f – cgTag