PHP exec_shell方法返回数据限制?

时间:2017-05-14 18:50:33

标签: php

我目前正在使用PHP的exec_shell方法运行python脚本,其中所述脚本打印出数据以进行传输。我注意到如果脚本打印出太多数据(不确定多少),exec_shell将不会返回任何数据。我限制脚本数据集来查找此结果。

exec_shell的数据限制是否有解决方法,因此可以使用它返回无限量的数据?

提前致谢!

1 个答案:

答案 0 :(得分: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