gpt4 book ai didi

php - 如何获得 proc_open() 的输出

转载 作者:IT王子 更新时间:2023-10-29 00:11:36 26 4
gpt4 key购买 nike

我试图从 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]);

可是我做不到有什么建议吗?

谢谢之前...

最佳答案

您的代码或多或少适合我。 time 将其输出打印到 stderr,因此如果您要查找该输出,请查看文件 files/temp/error-output.txt . stdout 管道 $pipes[1] 将只包含程序 ./a 的输出。

我的重现:

[edan@edan tmp]$ cat proc.php 

<?php

$cwd='/tmp';
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "/tmp/error-output.txt", "a") );

$process = proc_open("time ./a a.out", $descriptorspec, $pipes, $cwd);

echo stream_get_contents($pipes[1]);
fclose($pipes[1]);

?>

[edan@edan tmp]$ php proc.php

a.out here.

[edan@edan tmp]$ cat /tmp/error-output.txt

real 0m0.001s
user 0m0.000s
sys 0m0.002s

关于php - 如何获得 proc_open() 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com