1

炎上が始まる前に、ここと他のリンクでいくつかの調査を行いました: 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() コマンドの実行が完了するのを待っているということだけです。

どんな洞察も大歓迎です。

ありがとう!

4

0 に答える 0