4

我需要将一个值从 PHP 传递给 C++。我想我可以使用 PHP 的passthru()功能。然后我希望 C++ 对该值做一些事情并将结果返回给 PHP。这是我无法解决的问题,有人知道如何将数据从 C++ 传递到 PHP 吗?我宁愿不使用中间文件,因为我认为这会减慢速度。

4

4 回答 4

6

您可以让您的 c++ 应用程序将其输出发送到标准输出,然后使用反引号从 PHP 调用它,例如

$output=`myapp $myinputparams`;
于 2009-06-09T15:27:16.953 回答
2

哇非常感谢 Columbo 和 Paul Dixon。

现在我可以运行 php 来调用 c++ 然后将值传回给 php~ =)

在这里,我为它提供了一个示例 cpp & php:

添加输入的简单程序:

a.cpp (a.exe):

#include<iostream>
#include<cstdlib>
using namespace std;

int main(int argc, char* argv[]) {
  int val[2];
  for(int i = 1; i < argc; i++) { // retrieve the value from php
      val[i-1] = atoi(argv[i]);
  }
  int total = val[0] + val[1]; // sum up
  cout << total;  // std::cout will output to php
  return 0;
}

示例.php:

<?php
    $a = 2;
    $b = 3;
    $c_output=`a.exe $a $b`; // pass in the two value to the c++ prog
    echo "<pre>$c_output</pre>"; //received the sum
    echo "Output: " . ($output + 1); //modify the value in php and output
?>

输出:

5
Output: 6
于 2011-01-19T18:39:09.343 回答
0

这篇关于在 PHP 扩展中包装 C++ 类的文章可能会有所帮助。

编辑:其他答案中的所有解决方案都简单得多,但灵活性较差。这一切都取决于你需要什么。

于 2009-06-09T15:26:00.123 回答
0

如果您需要与正在运行的 C++ 程序进行通信,则通过 localhost 的套接字连接可能是用于在两个进程之间进行通信的最简单、最独立于平台且支持最广泛的解决方案。传统上,套接字是为了通过网络接口进行通信而构建的,但我已经看到它们在许多情况下用作管道的一种方法。它们相当普遍,并在大多数现代语言中得到支持。

这是套接字编程的 C 指南。为您的 C++ 程序。

于 2009-06-09T15:29:53.983 回答