Передача данных с C++ на PHP


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

Author: Brian Tompsett - 汤莱恩, 2009-06-09

4 answers

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

$output=`myapp $myinputparams`;
 6
Author: Paul Dixon, 2011-11-13 12:20:28

Вау, большое спасибо Коломбо и Полу Диксону.

Теперь я могу запустить 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
 2
Author: jihchuan, 2011-01-19 18:39:09

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

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

 0
Author: Doug T., 2009-06-09 15:29:53

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

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

 0
Author: Jacob B, 2009-06-09 15:40:08