如何集成PHP和C程序


How to integrate PHP and C program?

让我用一种简单的方式来解释我的问题。我写了一个C程序,我将保持在我的服务器。现在我正在开发一个网站使用PHP,以便其他用户也可以访问我的独立C程序。

这里我想让我的PHP从用户那里获取输入然后运行我的C程序然后再次获取结果将C程序返回给使用PHP的用户(可能使用相同的网站本身)。

请告诉我怎么做。如果你能用简单的程序告诉我,我会更容易理解。例如,我的C程序有一个将两个数字相加的函数。用户可以使用my提供他们的输入(数字)的网站。然后PHP将以某种方式与C函数交互并将结果返回给用户。

使用php exec命令。我假设您可以访问实际的C可执行文件。http://www.php.net/manual/en/function.exec.php

<?php
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
echo exec('whoami');
?>

Apache中的Cgi-bin可以在您的服务器上执行任何类型的可执行文件。出于性能考虑,PHP通常作为Apache模块运行,但也可以通过Cgi-bin运行。

你可以写一个Cgi脚本(通常用PERL)来执行你的C程序。您可以简单地用C程序写入文本文件,然后用PHP访问该文件。

必须编写一个C程序来解析命令行参数,如下所示:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
    printf("%d", atoi(argv[1]) + atoi(argv[2]));
    return 0;
}

然后用exec从PHP调用它,exec可以将C程序输出到stdout的内容放入数组中。参见http://se2.php.net/function.exec。