4

PHP から C++ に値を渡す必要があります。passthru()PHPの機能でできると思います。次に、C++ がその値に対して何らかの処理を行い、その結果を PHP に返します。これは私が解決できないビットです。C++ から PHP にデータを渡す方法を知っている人はいますか? これにより速度が低下すると考えているため、中間ファイルを使用したくありません。

4

4 に答える 4

6

C++ アプリの出力を stdout に送信し、PHP からbackticketを使用して呼び出すことができます。

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

コロンボとポール・ディクソンに感謝します。

これで、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;
}

sample.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 経由のソケット接続は、2 つのプロセス間で通信するための最も単純で、プラットフォームに依存せず、最も広くサポートされているソリューションです。ソケットは伝統的にネットワーク インターフェイスを介して通信するために構築されましたが、多くの場合、パイプを実行する方法として使用されているのを見てきました。それらはかなりユビキタスであり、ほとんどの最新の言語でサポートされています。

これは、ソケットプログラミングのC ガイドです。C++ プログラム用。

于 2009-06-09T15:29:53.983 に答える