【发布时间】:2012-02-27 16:02:57
【问题描述】:
在 php 中有几种方法可以执行 shell 命令:
- 系统()
- passthru()
- shell_exec()
- exec()
前两个显示输出但不返回。 最后两个返回输出但不显示。
我想运行需要大量时间的 shell 命令,但它会显示一些输出,所以我知道它不会挂起。但是最后我想在 php.ini 中处理这个输出。如果我选择前两个中的一个,我将不会得到输出,所以我将无法在 php.ini 中处理它。如果我运行最后两个之一,我将能够处理输出,但是我的程序将挂起很长时间而不输出任何内容。
有没有办法运行一个shell命令,它会立即显示输出并返回它?
【问题讨论】:
-
system() 调用的第二个参数没有帮助吗?
-
第二个参数是执行命令的返回状态,例如如果一切正常,则为 0,如果有错误,则为 1。我应该提到我也需要这个 - shell_exec() 是不支持的。
-
我认为没有任何 PHP 命令会在执行完成之前执行 shell 代码并将输出打印到屏幕上。