设为首页 加入收藏

TOP

C++调用PHP
2014-10-23 20:30:05 来源: 作者: 【 】 浏览:54
Tags:调用 PHP

  本文是对网络上现成代码的学习与解读!


  PHP是比较流行的脚本语言,WEB开发使用广泛,如何在C++程序中不依赖任何WEB SERVER调用PHP,并取得执行结果完成交互,这是本文代码所要实现的功能。


  PHP安装好后,在目录下有一个php-cgi.exe,我们只要执行这个CGI程序,并将数据通过命名管道传递给它,然后把执行结果通过命名管道读取出来即可,过程并不复杂!请看如下代码:


  命名管道的创建:


  SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES)};


  sa.bInheritHandle = 1;


  sa.lpSecurityDescriptor = NULL;


  HANDLE hStdoutR, hStdoutW, hStdinR, hStdinW;


  CreatePipe(&hStdoutR, &hStdoutW, &sa, 0);


  SetHandleInformation(hStdoutR,HANDLE_FLAG_INHERIT, 0);


  CreatePipe(&hStdinR, &hStdinW, &sa, 0);


  SetHandleInformation(hStdinW, HANDLE_FLAG_INHERIT, 0);


  启动php-cgi进程: STARTUPINFO si = {sizeof(STARTUPINFO)};


  PROCESS_INFORMATION pi;


  si.dwFlags = STARTF_USESTDHANDLES;


  si.hStdOutput = hStdoutW;


  si.hStdInput = hStdinR;


  char env[255] = "REQUEST_METHOD=POST\0CONTENT_LENGTH=18\0CONTENT_TYPE=


  application/x-www-form-urlencoded\0SCRIPT_FILENAME=D:\\test.php";


  if(!CreateProcess(NULL, "d:\\php5\\php-cgi.exe D:\\test.php",


  NULL, NULL, 1, NORMAL_PRIORITY_CLASS, env, NULL, &si, &pi))


  return 0;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MFC中屏蔽ESC和回车关闭对话框 下一篇C++ofstream和ifstream详细用法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: