2017-03-09 3 views
0

このPHPの問題を助けてください。 PHPのファイルは、ユーザーの要求に従ってpythonファイルを呼び出します。このPythonはタスクを実行しています。私はpythonファイルを実行する前にテキストをエコーし​​たい。なぜなら、PHPが何をするつもりであるかを警告するからです。PHPのshell_execの前にテキストをエコーする方法

あなたの情報のために、私はPythonのダミーファイルを試しました。 Pythonのコードはsleep(10)にすぎません。

PHPコードでは、ob_flush; ob_start();を使用しようとしました。すべて。コードは次のとおりです。思い出させるように。 algorithm.pyだけでも、このコードではshell_execが終了した後、それが唯一のエコーテキストを10second睡眠:

ob_start(); 
echo "welcome"; 
ob_flush(); 
usleep(1); 
$output=shell_exec("./$algorithm.py"); 

が含まれています。私はexecを使用しようとしました。テキスト表示はまだ遅れています。

+0

ファースト);'あなたが実際にバッファを使用する場合にのみ、しかし、あなたは確か ')('フラッシュを使用する必要があります。 – arkascha

+0

2番目に、httpプロトコルが意味するものではなく、ブラウザが部分的に受信した応答を表示するという保証はありません。あなたは幸運かもしれませんが、クライアント側のロジック(javascriptとajaxまたはWebソケット)を使用して、サーバーからステータス情報を引き続き取得し、既に読み込まれたページで可視化する、より複雑なアプローチを使用する必要があることを確実にするためです。 – arkascha

答えて

0

Output Bufferingを用いることができる。

あなたは `ob_flushを(使用する必要が
ob_implicit_flush(true) 
ob_start(); 

echo('Task is being done'); 

ob_flush(); 

$output=shell_exec("./$algorithm.py"); 
echo('Wait...'); 

ob_flush(); 

echo('done.'); 
ob_end_flush(); 
0
echo "welcome"."<pre>".$output."</pre>"; 
関連する問題