0
我正在使用PHP的exec_shell方法運行python腳本,其中所述腳本輸出數據以進行傳輸。我注意到,如果腳本打印出太多的數據(不確定多少),exec_shell將不會返回任何數據。我限制了腳本數據集以查找此結果。PHP exec_shell方法返回數據限制?
exec_shell的數據限制是否有解決方法,以便可以返回無限量的數據?
在此先感謝!
我正在使用PHP的exec_shell方法運行python腳本,其中所述腳本輸出數據以進行傳輸。我注意到,如果腳本打印出太多的數據(不確定多少),exec_shell將不會返回任何數據。我限制了腳本數據集以查找此結果。PHP exec_shell方法返回數據限制?
exec_shell的數據限制是否有解決方法,以便可以返回無限量的數據?
在此先感謝!
您可以使用proc_open
或popen
而不是shell_exec
,並讀取數據塊。
$chunk = 1024;
if(($fp = popen($cmd, 'r')) !== false) {
while(!feof($fp)) {
echo fread($fp, $chunk);
flush();
}
pclose($fp);
}
如果您將此用於Web應用程序,則打印的數據量取決於服務器配置。如果您在cli上運行腳本,它將直接打印至feof
。