2010-04-06 64 views
3

我意识到这可能是奇怪的东西,但这里是我的。PHP到C/C++通过CGI脚本

我有一个用C/C++编写的应用程序(手写识别引擎)。这个应用程序有Perl封装,它是由应用程序的作者使用SWIG制作的。我的网站是用PHP编写的,所以我正在寻找一些方法使PHP能够与C/C++应用程序一起工作。

我现在想到的唯一方法是创建一个CGI脚本(perl脚本),它接受来自我网站的POST请求(AJAX请求),通过它的Perl包装发送给识别引擎,获取所需的数据并作为对AJAX请求的响应返回所需的数据。

你认为这可以做到这一点吗?有没有更好的解决方案?

谢谢!

回答

2

你认为这是可以做到这样?

是的,没有理由不能完成。

有没有更好的解决方案?

可能。如果打算执行perl包装器作为系统调用单独的Perl脚本,则不需要单独的CGI perl脚本。你可以直接在你的网站上直接从PHP进行系统调用。如果PHP是比Perl的CGI更适合网络环境的舒适区域,则可能会有所帮助。如果Perl脚本包装是一个相当明显且简单的API调用集合,并且您对Perl CGI感到满意,则可以使用OTOH。 ,更好的解决方案是将该命令行Perl脚本移植到内部使用API​​的Perl CGI脚本中,绕过系统调用。

对于大批量的东西,删除系统调用是一个巨大的胜利表现明智的,加上允许更好更简单的错误处理。

2

你所建议的是:

web client <-> Perl CGI script <-> Perl wrapper <-> C program 

有没有什么特别的毛病这种方法,虽然它显然不是最有效的可能的方式做到这一点。性能有多重要?如果它不一定非常快,那么确定这样做,这听起来是最容易开发的。

如果你想走得更远了一步,然后在上面的原理优化的明显的一点就是崩溃两个Perl的层:

web client <-> Perl CGI script <-> C program 

的问题是,是否值得你的时间来做到这一点?您可以查看Perl包装的源代码并自行决定。

我的建议是最初开发它简单的方法,然后,如果出于某种原因,你决定是不够的,两个Perl脚本合并成一个。但现在,请不要担心,并继续提出您的想法。