<?php
system('a.out');
?>
即可调用C程序并返回结果,前提是服务器没有禁掉system函数。直接用PHP调用C写的函数好象还不行,PEAR中有个Inline_c不知道有没有用,不过可以通过参数的形式传到C程序,再返回结果。如:
C程序:test.c
------------------------
#include "stdio.h"
int main(int argc,char * argv[])
{
if(argc!=2) {
printf("-----------------------------------\n");
printf("Usage : test [String]\n");
printf("Description : test php interface!\n");
exit(0);
}
printf("%s", argv[1]);
exit(1);
}
编译:gcc test.c
------------------------
PHP程序:
------------------------
<?php
$test = 'test';
system("a.out $test");
?>
------------------------
最后结果就输出test了。
system('a.out');
?>
即可调用C程序并返回结果,前提是服务器没有禁掉system函数。直接用PHP调用C写的函数好象还不行,PEAR中有个Inline_c不知道有没有用,不过可以通过参数的形式传到C程序,再返回结果。如:
C程序:test.c
------------------------
#include "stdio.h"
int main(int argc,char * argv[])
{
if(argc!=2) {
printf("-----------------------------------\n");
printf("Usage : test [String]\n");
printf("Description : test php interface!\n");
exit(0);
}
printf("%s", argv[1]);
exit(1);
}
编译:gcc test.c
------------------------
PHP程序:
------------------------
<?php
$test = 'test';
system("a.out $test");
?>
------------------------
最后结果就输出test了。
<?
#!/usr/local/bin/php -q
exec("./test");
?>
client(cgi module)发送--http-->接收&解密server(cgi module)-->数据处理(C/C++)-->发送&加密server(cgi module)--http-->client(cgi module)接收
SERVER监听-->CLIENT端请求(PHP->fsockopen())-->数据处理-->直接输出处理结果。可能是我想的太复杂了,再说我对SOCKET编程也不怎么熟悉,如果只是简单地用C程序处理一下,那么用我上面的程序就足够了。返回结果直接输出到浏览器也可,或者交给PHP再进行其他处理也可。如:<?php
$test = 'test';
$returnvalue = system("a.out $test");
...
PHP中的其他处理
...
?>