如何在不捕获输出的情况下从exec获取返回值?
问题描述:
当调用exec()
时,我想捕获该调用的返回值,但我对输出本身不感兴趣。 exec()
提供了两个可选参数,通过引用传递,它们将分别由输出和返回值填充。如何在不捕获输出的情况下从exec获取返回值?
所以我能做到这一点,只是忽略$output
:
exec($command, $output, $return_value);
但是,如果有大量的输出?我不想耗尽内存,因为$output
填满了。
我想也许我能做到这一点,但显然这不是有效的参考,我很快就发现了通过文字:
exec($command, null, $return_value);
所以现在我想知道,有没有解决的办法?
我可以调整$command
值在外壳的水平,解决了内存使用问题,将输出重定向到/dev/null
,但如果我无法预测的$command
起始值这不是一个很好的解决方案。
答
尝试system (string $command [, int &$return_var ])。它将返回状态写入第二个参数,并且只返回不需要分配的最后一行输出:
system($command, $return_value);