2016-05-03 10 views
0

私は実行時にPHPを介してWebブラウザ上のpythonスクリプトの出力を表示したいと思います。誰かがこれを助けることができます.. ??どのようにPHPでランタイムにPythonの出力を印刷することができます

私はここのPHPによる簡単なPythonスクリプトを呼んでいるが、コードは次のとおりです。 run.py:

import os 
    import subprocess 
    import sys 
    import time 
    print "<br> Hi from Python" 
    sys.stdout.flush() 
    for i in range(0,5): 
     time.sleep(1) 
     print "<br> Hi from Python" 
     sys.stdout.flush() 

これはPHPスクリプトです:

<?php 
$handle = popen("python run.py ", 'r'); 
while(!feof($handle)) { 
$buffer = fgets($handle); 
echo "$buffer<br/>\n"; 
ob_flush(); 
} 
pclose($handle); 
?> 

誰かが時に助けることができますこの..??

答えて

0

使用exec代わり

$res = NULL; 

exec("python full/path/to/script.py 2>&1" ,$res); //2>&1 @comments.KEK 

if(isset($res)){ 
    foreach($res as $rowRes){ 
     echo $rowRes; 
    } 
} 
+1

あなたは '2を追加する>&1 'のように、あなたのPHPスクリプトにエラー出力をリダイレクトすることもできます。'のexec( "pythonのフル/パス/に/ script.py 2 >&1 "、$ res); ' – KEK

+1

@KEKは同意しました。 –

+0

いいえ動作しません。処理が完了したら、pythonの出力はすべて一度に表示されます。 –

関連する問題