Pregunta

Tengo un archivo php que inicia mi exe. el exe hace cout y el texto se imprime en html, que está bien. hasta que escriba "someline \ n"; El \ n rompe la salida y solo veo la última línea. ¿Cómo imprimo / echo texto / cadenas que tienen líneas múltiples en ellas?

La pasta actual ha \ n comentado y mi texto se imprime bien. Se ve feo en la consola y cuando veo la fuente con IE7 (aunque principalmente busco con FF) la fuente es dolorosa de ver. Aquí está mi archivo php y cpp actual

<html>
<head>
</head>
<body>
<?php
echo( exec('c:/path/to/exe/launchMe.exe hey lol hi') );
?>
</body>
</html>

cpp

#include <string>
#include <iostream>
#include <sstream>
using namespace std;

const string htmlLine(string s)
{
    s+= "<br />";
//  s += "\n";
    return s;
}

int main(int argc, char *argv[])
{
    stringstream s;
    s << argc;
    cout << htmlLine("woot") << htmlLine(s.str());
    for (int i=0; i<argc; ++i)
    {
        s.str("");
        s << i << " = " << argv[i];
        cout << htmlLine(s.str());
    }
    return 0;
}
¿Fue útil?

Solución

De http://php.net/exec :

  

Valores devueltos

     

La última línea del resultado del comando. Si necesita ejecutar un comando y hacer que todos los datos del comando pasen directamente sin ninguna interferencia, use el passthru () función.

La función exec () solo devuelve la última línea de salida, pero passthru () devuelve todos resultados.

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