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

标签 php html c++ linux

我有什么:

  • 服务器(linux)上的程序(c++)
  • 程序可以通过命令行参数执行
  • 程序在一段时间后完成并连续输出(“log.txt”)

我想要的:

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

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

什么是最好的方法?我目前的想法是启动后台进程 ( 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/

相关文章:

php - 避免在构造函数服务 Symfony 中使用长参数列表

html - 为什么全屏HTML5视频需要 `-moz-full-screen-ancestor`自定义属性?

javascript - 从 iframe 本身内的另一个页面延长 iframe

javascript - 如何从具有特定属性值的按钮重定向 url?

android - 带有 ubuntu 索引器的 C/C++ IDE

c++ - 是否有完整的基于范围的标准库实现?

php - 同一行不同列中的复选框值php

php - 调试 CakePHP 保存

php - 我如何用 GD 和 PHP 重复水印图像?

c++ - 计算 (2^k)m=input 的递归函数