0

我有以下 PHP 代码:

shell_exec("(traceroute odesk.com > trace.txt;echo 'traceIsDone'>>trace.txt) &");

该行需要 50 秒才能完成,它与 ping 一起使用,当我在终端窗口中执行该行时,它会立即返回:

(traceroute odesk.com > trace.txt;echo 'traceIsDone'>>trace.txt) &

如何在 PHP 转到下一行后立即执行该命令?所以不等待 shell_exec 命令完成?

4

1 回答 1

2

你应该使用popen()

通过对 command 给出的命令进行分叉来打开一个进程的管道。

它说它派生了命令,即它在一个新线程中启动它,因此它不会阻塞您的主线程。因此,我认为这就是您想要使用的。

您可以非常像fopen()(如果您熟悉它的话)使用fgets(),fgetss()fwrite().

PHP 手册中的 popen()

于 2012-11-06T08:10:25.017 回答