1

exeファイルを起動するphpファイルがあります。exeはcoutを実行し、テキストはhtmlで印刷されます。これはすべて問題ありません。「someline\n」と書くまで; \ nは出力を中断し、最後の行しか表示されません。複数行を含むテキスト/文字列を印刷/エコーするにはどうすればよいですか?

現在の貼り付けは\nコメントアウトされており、テキストは正常に印刷されます。コンソールでは見苦しく、IE7でソースを表示すると(主にFFで参照しますが)、ソースを見るのは苦痛です。これが私の現在のphpとcppファイルです

<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;
}
4

1 に答える 1

5

http://php.net/execから:

戻り値

コマンドの結果の最後の行。コマンドを実行し、コマンドからのすべてのデータを干渉なしで直接返す必要がある場合は、passthru()関数を使用します。

exec()関数は出力の最後の行のみを返しますが、passthru()はすべての出力を返します。

于 2008-11-05T03:03:49.697 に答える