Pregunta

Necesito pasar un valor de PHP a C ++. Creo que puedo hacer con la función passthru() de PHP. Entonces quiero C ++ para hacer algo a ese valor y devuelve el resultado a PHP. Esta es la parte que no puedo trabajar, ¿alguien sabe cómo pasar datos desde C ++ para PHP? Yo Prefiero no usar un archivo intermedio ya que estoy pensando que esto va a ralentizar las cosas.

¿Fue útil?

Solución

Usted podría tener su aplicación C ++ envía su salida a la salida estándar, entonces llamaremos a partir de PHP con acentos abiertos , por ejemplo

$output=`myapp $myinputparams`;

Otros consejos

wow muchas gracias a Columbo y Paul Dixon.

Ahora puedo correr php para llamar a C ++ penas hay pasar de nuevo valor a php ~ =)

Aquí proporciono un coste por muestra y por ello php:

  

Un programa simple para la suma de las entradas:

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
?>

salida:

5
Output: 6

Si necesita comunicarse con un programa en C ++ correr, un conexión de socket sobre el host local puede haber el más simple, más independiente de la plataforma y más ampliamente solución compatible para la comunicación entre los dos procesos. Enchufes estaban construidas tradicionalmente a comunicarse a través de las interfaces de red, pero los he visto utilizado en muchos casos como un método de hacer un tubo. Son bastante ubicua y apoyado en la mayoría de las lenguas modernas.

Aquí hay un href="http://beej.us/guide/bgnet/" rel="nofollow noreferrer"> guía para su programa en C ++.

Este artículo acerca de envolver clases de C ++ en una extensión de PHP puede ayudar.

EDIT: todas las soluciones en otras respuestas son mucho más simples, pero menos flexible. Todo depende de lo que necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top