我想在Web服务器中重复运行用C ++编写的程序。 因为有些事情是php无法做到的,但是c ++却可以做到这一点。
我搜索并发现可以通过使用php中的exec
函数来完成。
我在js setInterval
中使用此代码每100毫秒运行一次该程序。
但是似乎该程序在网页加载时运行,并且在js代码中,我具有相同的输出。
例如,当我想从c ++程序获取当前日期时。 cpp代码为:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
time_t now = time(0);
tm *ltm = localtime(&now);
cout << 1 + ltm->tm_sec;
return 0;
}
在index.php
文件中,我将其用于每100ms在页面上打印一次当前时间。
<script>
setInterval(function(){
var date = "<?php passthru("print_date.exe"); ?>";
document.write(date + "<br>");
},100);
</script>
但是它打印的总是一样!
还有其他方法吗? 谢谢!
答案 0 :(得分:0)
因为php代码仅执行1次。使用Ajax作为选项。
//第二天更新。 1.文件(index.php)
<script>
var aj;
setInterval(function()
{
aj = new XMLHttpRequest();
aj.open('GET',"/print_date.php",false);
aj.onreadystatechange = processData;
aj.send(null);
},1000);
function processData()
{
var date = '';
if (aj.readyState == 4)
{
date = aj.responseText;
document.write(date + "<br>")
}
}
</script>
这是非常简单的同步ajax。间隔是1000,而不是100,因为1000ms = 1s(C ++程序以秒为单位返回时间!)。
2)因此,print_date.php是
<?php
error_reporting(0); //because any warning destroys output for ajax
passthru("print_date.exe");