如何在不捕获输出的情况下从exec获取返回值?

时间:2015-10-15 15:18:17

标签: php exec

调用exec()时,我想捕获调用的返回值,但我对输出本身不感兴趣。 exec()提供两个可选参数,通过引用传递,分别由输出和返回值填充。

所以我可以这样做,只是忽略$output

exec($command, $output, $return_value);

但是如果有很多输出怎么办?我不想在$output填满时耗尽内存。

我想也许我可以做到这一点,但显然通过引用传递文字是无效的,我很快就发现了:

exec($command, null, $return_value);

所以现在我想知道,有没有办法解决这个问题?

可以调整$command的值,以便在shell级别将输出重定向到/dev/null,从而解决内存使用问题,但如果我不是一个好的解决方案无法预测$command的起始值。

1 个答案:

答案 0 :(得分:2)

试试system ( string $command [, int &$return_var ] )。它将返回状态写入第二个参数,并且仅返回您不需要时不需要分配的最后一行输出:

system($command, $return_value);