我试着从php中的proc_open
方法中获取输出,但是,当我打印它时,我得到了空的。
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "files/temp/error-output.txt", "a")
);
$process = proc_open("time ./a a.out", $descriptorspec, $pipes, $cwd);
字符串
只要我知道,我就可以用stream_get_contents()
得到输出
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
型
但我不能这么做,有什么建议吗?
Thx before.
3条答案
按热度按时间tnkciper1#
您的代码或多或少对我有用。
time
将其输出打印到stderr
,因此如果您正在查找该输出,请查看文件files/temp/error-output.txt
。stdout
管道$pipes[1]
将仅包含程序./a
的输出。我的复制品:
字符串
jljoyd4f2#
这是
proc_open()
的另一个例子。在这个例子中,我使用Win32 ping.exe命令。CMIIW字符串
希望能帮到你=)
hs1rzwqc3#
这里是一个完整的函数,它读取stdout和stderr。
字符串