viernes, 12 de junio de 2015

ejecutar c++ desde php


Para poder pasar parámetros a un programa a través de la línea de comandos nos valemos de la siguiente declaración de la función main:

int main(int argc, char *argv[])
 de esa forma el *argv[] lo capturará en forma de array. veamos:
suma.cpp:


#include <iostream>
#include <cstdlib>
using namespace std;

int main(int argc, char *argv[])
{
  if (argc != 3)
    cout << "Uso: suma entero1 entero2\n";
  else
    {
      int a,b,sum;
      a = atoi(argv[1]);
      b = atoi(argv[2]);
      sum=a+b;
      cout<<"la suma es="<<sum;
    
    }
  return 0;

}


para compilar  se ejecuta el siguiente comando:

 >>sudo g++ suma.cpp -o suma

quedando asi de claro que el formato de ejecutar es:
command("./suma 1 2").

desde php hariamos esto:

index.php

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<form id="frm" action="index.php">
<div>
    <label>numero 1</label>
    <input type="text" name="num1" id="num1">
    <label>numero 2</label>
<input type="text" name="num2" id="num2">
<input type="submit"  name="" id="" value="sumar" />
</div>
</form>
</body>
</html>

<?php 
 $comando="./suma ".$_REQUEST['num1']." ".$_REQUEST['num2'];
passthru($comando);
?>

siendo las función passthru que ejecuta el comando y recibe la salida desde c++

dejo el codigo aqui