2017-05-14 3 views
0

私は現在、PHPのexec_shellメソッドを使用してpythonスクリプトを実行していますが、このスクリプトは転送を行うためにデータを出力します。私は、スクリプトがあまりにも多くのデータを出力すると(どれくらいの量であるのか)、exec_shellはデータを返さないことに気付きました。私はこの結果を見つけるためにスクリプトのデータセットを制限しました。PHP exec_shellメソッドはデータの制限を返しますか?

exec_shellのデータ制限の回避策がありますので、無限大のデータを返すことができますか?

ありがとうございます!

答えて

0

shell_execの代わりにproc_openまたはpopenを使用して、データのチャンクを読み取ることができます。

$chunk = 1024; 
if(($fp = popen($cmd, 'r')) !== false) { 
    while(!feof($fp)) { 
     echo fread($fp, $chunk); 
     flush(); 
    } 
    pclose($fp); 
} 

ウェブアプリケーションでこれを使用している場合、印刷されるデータ量はサーバーの構成によって異なります。スクリプトをcliで実行すると、feofまで印刷されます。

関連する問題