炎上が始まる前に、ここと他のリンクでいくつかの調査を行いました: PHPでリアルタイム出力を使用してプロセスを実行します
これは私が現在使用しているものです:
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("pipe", "w"), // stderr
);
flush(); ?>
<?php $process = proc_open($_POST['field1'], $descriptorspec, $pipes, dirname(__FILE__), null);?>
<?php $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); ?>
これは、コンソール アプリケーションから Web ページに stdout と stderr を出力するのに最適ですが、バッファリングを想定しているため、リアルタイムで更新されません。投稿したリンクのメソッドと Ajax の同様のメソッドを試しましたが、どちらもリアルタイムで更新されず、すべての入力が完了するのを待ってからページに表示されます。
私が思いつくことができるのは、出力で何かをしようとする前に、php が proc_open() コマンドの実行が完了するのを待っているということだけです。
どんな洞察も大歓迎です。
ありがとう!