如何在网页和实际程序之间进行交互

How to interact between webpage and an actual program

本文关键字:之间 程序 交互 网页      更新时间:2023-10-16

我有什么:

  • 服务器(linux)上的程序(c++)
  • 程序可以使用命令行参数执行
  • 程序在一段时间后结束,并产生连续输出("log.txt")

我想要什么:

我的想法是与该程序进行某种用户交互:

  1. 用户打开一个网站,显示一些输入(复选框等)
  2. 向服务器提交(POST)后,应使用选定的设置启动程序
  3. 运行log.txt时,程序所做的更改应显示给用户
  4. 完成后,应出现一条消息(例如"完成")

什么是最好的方法?我目前的想法是启动一个后台进程(php执行后台进程)并监控进程id。但是,我不知道如何用php动态监控进程,如何向用户显示log.txt输出,或者如何告诉用户程序已经完成,因为这些事情不是静态的,而是动态的。

我对C++很熟悉,但我的html和php技能是基本的。也许我需要进一步的技术?

<?php 
ob_implicit_flush(true);
ob_end_flush();
$cmd = "your_program -{$_POST[option1]} -{$_POST[option2]}";
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "w")
);
flush();
$process = proc_open($cmd, $descriptorspec, $pipes, realpath('./'), array());
echo "<pre>";
if (is_resource($process)) {
while ($s = fgets($pipes[1])) {
print $s;
flush();
}
}
echo "</pre>";
proc_close();
echo 'Proc finished!';

正如这里所回答的,但有一些修改。