PHP proc_open on windows


PHP proc_open on windows

我已经使用proc-open创建了一个进程,但在windows下,流选择不起作用。我试图实现的是从stdouttderr中读取,同时写入stdin并确保输出可以与输入匹配。windows有没有解决这个不足的方法?

您并没有非常详细地说明在Windows上使用流选择不起作用的原因。然而,这是一个关于如何使用流选择的工作示例。我刚刚在WindowsXP上用PHP5.4成功地运行了这个。

编辑:嗯。。看起来它毕竟不起作用。。。Sry,在这里测试更多…:)

再次编辑:

所以,我在这方面做了更多的实验,但没有成功。

也许你应该让进程之间使用TCP/UDP/IP?

另一种前进的方法(如果你仍然想在进程中使用stdout/stdin/stderr)可能是将proc_open与文件处理程序一起使用,这样你的进程就可以写入文件,然后使用类似于unix的inotify,用PHP DOTNET类加载这些东西:在Windows上有类似inotify的东西吗?以检测对文件的更改。。。?只是个主意。。。

或者可能更改为类似unix的操作系统?;)好的,今晚就给我。晚安

添加bypass_shell对我的有效

$proc=proc_open($cmd,
        array(
            0=>array('pipe', 'r'), //stdin
            1=>array('pipe', 'w'), //stdout
            2=>array('pipe', 'w')  //stderr
            ),
        $pipes,
        $dir,
        null,
        array('bypass_shell'=>true)
    );