是否有可能通过点击html页面上的按钮在我的网络服务器上运行c ++程序?

时间:2016-03-09 12:44:06

标签: javascript php html

我在过去几个小时里做了很多研究,只找到了Windows服务器的结果。

我的问题是我在嵌入式计算机上有一个c ++程序,需要在用户希望时执行。这就是为什么我设置一个网络服务器来处理它。所以我想用一个名为“Start Program”的按钮创建一个html页面(已经完成),然后执行我的c ++程序。

我已经尝试了Javascript child_process,这种方式不起作用,还有php system()调用,这是不方便的,因为它没有单独对按钮点击作出反应,而是对页面进行刷新

有没有聪明的方法呢?谢谢!

1 个答案:

答案 0 :(得分:5)

如果您不想刷新页面,可以使用jquery对按钮进行编程以进行ajax调用。您可以在html索引页面中添加以下内容:

<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.1.js"></script>
<script>
    <!--
    $(document).ready(function() {
        $('#buttonid').on('click', function(e) {
            e.preventDefault(); // prevent page from reloading.
            $.get('/callmyprogram.php');
        });
    });
    -->
</script>

同样在你的html上,按钮的ID必须与上面JS代码中的选择器匹配。选择器#buttonid表示您的按钮ID为buttonid。因此,按钮的html类似于:

<input type="submit" id="buttonid" value="Run C++ program"/>

然后你会callmyprogram.php调用你的c ++程序:

<?php

exec("/usr/local/bin/myprogram", $output, $ret);
echo "output: $output" . PHP_EOL;
echo "ret: $ret" . PHP_EOL;