gpt4 book ai didi

PHP 读取控制台输出

转载 作者:太空狗 更新时间:2023-10-29 12:08:23 25 4
gpt4 key购买 nike

好的,事情是这样的。我需要读取输出(您通常在 Linux 控制台中看到的输出)。我最大的问题是我不需要读取线性执行的输出,而是像 wget http://ubuntu.com/jaunty.iso 这样的东西并显示它的 ETA。

此外,工作流程如下:

S - 网络服务器

C1 - S 的内网中的 computer1

C2 - S 内网中的计算机 2

等等。

用户连接到 SS 连接到 Cx 然后启动一个 wgettop 或其他控制台日志命令(应用户要求)。当wget下载指定的目标时,用户可以从Cx看到“控制台日志”。

这可信吗?不使用服务器/客户端软件可以完成吗?

谢谢!

最佳答案

您需要使用 php 函数 proc_open为此——您可以指定一个管道数组(stdin,如果您在控制台上,它通常会连接到键盘,std out 和 stderr,通常都会打印到显示器上)。然后,您可以控制给定程序的输入/输出流

举个例子:

$pipes = array();
$pipe_descriptions = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);

$cmd = "wget $url";

$proc_handle = proc_open($cmd, $pipe_descriptions, $pipes);

if(is_resource($proc_handle))
{
// Your process is running. You may now read it's output with fread($pipes[1]) and fread($pipes[2])
// Send input to your program with fwrite($pipes[0])
// remember to fclose() all pipes and fclose() the process when you're done!

关于PHP 读取控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345880/

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