如何在php(web应用程序)中传递值和运行c程序

How to pass value and run c program in php( web application)

本文关键字:运行 程序 php 应用程序 web      更新时间:2023-10-16

我有一个大的c程序。我想在php中执行这个函数并获取value

例如

C程序

int add( int, int);         
void main()
{
  int i=1;
  printf("i starts out life as %d.", i);
  i = add(5, 10);           
  printf(" And becomes %d after function is executed.n", i);
}

int add( int a, int b)          
{
  int c;
  c = a + b;
  return c;
}

我的web表单有值a和b.所以当我提交表单时,我想调用c函数添加和获取输出

我知道php中有一个执行外部程序的函数像

exec()
shell_exec()

但是我不熟悉这个函数。所以请给我的代码样本。我应该把c程序文件(在记事本中)放在服务器根目录下吗?

请引导我!提前感谢

我想最简单的方法是从PHP调用C,传递作为参数的形参。C端:

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

(显然,您应该添加错误检查)。PHP端:

$a = ...;
$b = ...;
$c = exec("/path/to/sum $a $b");

假设你的C程序叫做sum。


编辑:只是添加一个关于各种方法的注释到目前为止,建议你:

  • exec()启动C程序,如我上面的回答,是这是最简单的解决方案。但是,它需要创建一个每次调用C代码时都会创建一个新的进程,这可能会很昂贵

  • 一个PHP扩展避免了进程的创建,应该更多效率很高,特别是当您对C代码进行多次调用时你的C代码可以快速计算结果

  • 如果您的C程序启动缓慢,则守护进程更有趣

有一种方法可以做到这一点-但无论如何都不是微不足道的。你需要用c/c++写一个php扩展,把它安装在执行php的服务器上,并更新你的php.ini——然后你就可以直接从php访问c/c++函数了。看看这里:http://devzone.zend.com/article/1021关于如何编写扩展