在调用exec()
时,我想捕获调用的返回值,但我对输出本身不感兴趣。exec()
提供了两个可选参数,通过引用传递,它们将分别由输出和返回值填充。
我可以这样做,忽略$output
:
exec($command, $output, $return_value);
但是如果有很多输出呢?我不想在$output
填满时耗尽内存。
我想也许我可以这样做,但很明显,通过引用传递字面量是无效的,我很快就发现了:
exec($command, null, $return_value);
所以现在我在想,有没有办法解决这个问题?
I 可以调整$command
的值以在shell级别将输出重定向到/dev/null
,这解决了内存使用问题,但如果我无法预测$command
的起始值,这不是一个好的解决方案。
Try system (string $command [, int &$return_var])。它将返回状态写入第二个参数,并且只返回不需要赋值的最后一行输出:
system($command, $return_value);