Передача данных из C ++ в PHP - PullRequest
4 голосов
/ 09 июня 2009

Мне нужно передать значение из PHP в C ++. Я думаю, что я могу сделать с функцией PHP passthru(). Затем я хочу, чтобы C ++ что-то сделал с этим значением и вернул результат в PHP. Это то, что я не могу понять, кто-нибудь знает, как передавать данные из C ++ в PHP? Я бы предпочел не использовать промежуточный файл, так как думаю, что это замедлит процесс.

Ответы [ 4 ]

6 голосов
/ 09 июня 2009

Вы можете сделать так, чтобы ваше приложение на c ++ отправляло свои выходные данные в stdout, а затем вызывало его из PHP с backticks , например

$output=`myapp $myinputparams`;
2 голосов
/ 19 января 2011

Ух, спасибо Коломбо и Полу Диксону.

Теперь я могу запустить 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:

<code><?php
    $a = 2;
    $b = 3;
    $c_output=`a.exe $a $b`; // pass in the two value to the c++ prog
    echo "<pre>$c_output
"; // получил сумму эхо "Вывод:". ($ output + 1); // изменяем значение в php и выводим ?>

выход:

5
Output: 6
0 голосов
/ 09 июня 2009

Если вам нужно связаться с работающей программой на C ++, соединение socket через локальный хост может быть самым простым, наиболее независимым от платформы и наиболее широко поддерживаемое решение для связи между двумя процессами. Сокеты традиционно создавались для связи по сетевым интерфейсам, но я видел их во многих случаях как метод создания канала. Они довольно распространены и поддерживаются в большинстве современных языков.

Вот руководство C для программирования сокетов. для вашей программы на C ++.

0 голосов
/ 09 июня 2009

Эта статья о переносе классов C ++ в расширение PHP может помочь.

РЕДАКТИРОВАТЬ: все решения в других ответах гораздо проще, но менее гибкими. Все зависит от того, что вам нужно.

...