我有什么:
- 服务器(linux)上的程序(c++)
- 程序可以通过命令行参数执行
- 程序在一段时间后完成并连续输出(“log.txt”)
我想要的:
我的想法是与该程序进行某种用户交互:
- 用户打开一个显示一些输入(复选框等)的网站
- 在提交(POST)到服务器后,程序应该以选定的设置启动
- 在运行 log.txt 时,应向用户显示程序所做的更改
- 完成后应出现一条消息(例如“完成”)
什么是最好的方法?我目前的想法是启动后台进程 ( php execute a background process ) 并监视进程 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!';
如回答here , 但有一些修改。
关于php - 如何在网页和实际程序之间进行交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29824953/