将PHP与本地C++程序链接

dcc*_*310 5 php c++ networking

我一直在研究这几个小时,但我所看到的一切看起来都相当令人生畏.到目前为止,我一直在使用PHP来处理我网站上的所有简单内容.我正在做很多统计工作,我希望c ++可用于更强烈的计算.

c ++将在与PHP相同的Unix机器上本地运行.

以下是我不知道如何做的事情:

<?php 
//c++ program has a counter initialized to 0
//PHP tells c++ to add 5 to the counter.  $incremented is 5
$incremented = increment_in_cpp_and_return(5);
//$incremented_again will be 7
$incremented_again = increment_in_cpp_and_return(2);
?>
Run Code Online (Sandbox Code Playgroud)

当然,我正在运行一些蒙特卡罗模拟并遍历真正的大树而不是增加数字,但这并不是什么阻碍了我.

C++只需要监听一个数字并返回另一个数字(最多可能是JSON中的一些东西).c ++必须在调用之间跟踪其变量.

我已经完成了很多关于TCP,套接字编程等方面的阅读,我只是有点怀疑这个和实例一样复杂.很多事情都指向了我这个https://beej.us/guide/bgnet/html/multi/clientserver.html#simpleserver

如果真的超过100行c ++,是否有一些流行的库,或者是否有另一种语言的简单实现?

谢谢!

Joh*_*ter 5

如果您只想从PHP访问C++程序(或使用PHP作为C++代码的Web前端),则通过套接字进行通信的替代方法是将C++代码作为扩展嵌入到PHP中.

有相当多的样板代码与之相关,但大部分是由ext_skel脚本生成的(包含在PHP源代码中).

关于编写PHP扩展的大多数在线信息都与使用C有关,请参阅使用C++扩展PHP?有关使用C++的几个问题.


Pau*_*aul 2

你可以尝试: exec()

您将来自 PHP 的数据作为参数发送给将要执行的 C++ 编写的程序,该程序将返回输出,以便您可以在 C++ 程序执行后在 PHP 中使用它。