我目前正在使用PHP的exec_shell方法运行python脚本,其中所述脚本打印出数据以进行传输。我注意到如果脚本打印出太多数据(不确定多少),exec_shell将不会返回任何数据。我限制脚本数据集来查找此结果。
exec_shell的数据限制是否有解决方法,因此可以使用它返回无限量的数据?
提前致谢!
答案 0 :(得分:0)
您可以使用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
。