Pergunta

Eu preciso passar um valor de PHP para C ++. Eu acho que posso fazer com a função passthru() do PHP. Então eu quero C ++ para fazer algo a esse valor e retornar o resultado para PHP. Este é o bit I não pode trabalhar fora, alguém sabe como passar dados de C ++ para PHP? Eu prefiro não usar um arquivo intermediário, como eu estou pensando que isso vai retardar as coisas.

Foi útil?

Solução

Você pode ter o seu c ++ aplicativo enviar sua saída para stdout, então chamá-lo de PHP com backticks , por exemplo

$output=`myapp $myinputparams`;

Outras dicas

wow graças muito a Columbo & Paul Dixon.

Agora eu posso executar php ao chamado c ++ thn passar o valor de volta para php ~ =)

Aqui eu fornecer uma amostra CPP & php para ele

Um programa simples para somar 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
?>

saída:

5
Output: 6

Se você precisa para se comunicar com um programa em execução C ++, um tomada conexão pela localhost pode ser mais simples, mais independente de plataforma e mais amplamente suportado solução para a comunicação entre os dois processos. Sockets foram tradicionalmente construídas para comunicar através de interfaces de rede, mas eu os vi usado em muitos casos como um método de fazer um tubo. Eles são bastante onipresente e apoiado na maioria das línguas modernas.

Aqui está um C guia para a programação de socket. para o seu programa C ++.

Este artigo sobre embrulho C ++ classes em uma extensão PHP pode ajudar.

EDIT: todas as soluções em outras respostas são muito mais simples, mas menos flexível. Tudo depende do que você precisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top