2017-05-14 57 views
0

我正在使用PHP的exec_shell方法運行python腳本,其中所述腳本輸出數據以進行傳輸。我注意到,如果腳本打印出太多的數據(不確定多少),exec_shell將不會返回任何數據。我限制了腳本數據集以查找此結果。PHP exec_shell方法返回數據限制?

exec_shell的數據限制是否有解決方法,以便可以返回無限量的數據?

在此先感謝!

回答

0

您可以使用proc_openpopen而不是shell_exec,並讀取數據塊。

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

如果您將此用於Web應用程序,則打印的數據量取決於服務器配置。如果您在cli上運行腳本,它將直接打印至feof