【问题标题】:PHP to C/C++ through CGI script通过 CGI 脚本 PHP 到 C/C++
【发布时间】:2011-02-04 15:08:08
【问题描述】:

我意识到这可能很奇怪,但这就是我所拥有的。

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

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

你觉得可以这样吗?有没有更好的解决方案?

谢谢!

【问题讨论】:

    标签: php c++ c perl swig


    【解决方案1】:

    你觉得可以这样吗?

    是的,没有理由做不到。

    有没有更好的解决方案?

    可能是。如果您打算将 perl 包装器作为对单独 Perl 脚本的系统调用来执行,则不需要单独的 CGI perl 脚本。您可以直接在您的站点中从 PHP 进行系统调用。差别不大,但如果 PHP 比 Perl 的 CGI 更适合您的 Web 内容,可能会有所帮助

    OTOH,如果 Perl 脚本包装器是一组相当明显且简单的 API 调用,并且您对 Perl CGI 感到满意,那么更好的解决方案是将命令行 Perl 脚本移植到在内部使用 API 的 Perl CGI 脚本中,绕过系统调用。

    对于大容量的东西,删除系统调用在性能方面是一个大赢家,而且可以更好、更轻松地处理错误。

    【讨论】:

      【解决方案2】:

      你的提议是:

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

      这种方法没有什么特别的问题,尽管它显然不是最有效的方法。性能有多重要?如果它不需要非常快,那么一定要这样做,这听起来是最容易开发的。

      如果你想更进一步,那么上图中最明显的优化点就是折叠两个 Perl 层:

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

      问题是,值得您花时间这样做吗?您可以查看 Perl 包装器的源代码并自行决定。

      我的建议是最初以简单的方式开发它,然后如果出于某种原因认为它不够用,则将两个 Perl 脚本合并为一个。但现在,别担心,继续你的想法吧。

      【讨论】:

        猜你喜欢
        • 2019-04-09
        • 2012-06-25
        • 2012-04-07
        • 2012-02-16
        • 1970-01-01
        • 2011-02-14
        • 2010-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多