PHP でコンソール EXE プログラムを呼び出す方法
1. 使用できる関数は次のとおりです: exec、system、passthru、popen、および anti-single quote の違いは次のとおりです。
system() は、シェル結果の最後の行を出力して返します。exec() は結果を出力せず、シェル結果の最後の行を返します。すべての結果は返された配列に保存できます。
passthru()はコマンドを呼び出すだけで、コマンドの実行結果をそのまま標準出力装置に直接出力します。
上記3つの関数は、いずれもコマンド実行の戻り値を取得できる点は同じです。
popen() はパイプ モードで開かれ、読み取りまたは書き込みのみが可能であり、同時に読み取りと書き込みを行うことはできず、実行の戻り値を取得することはできません。
バックシングルクオートは結果を出力せず、すべての結果を保存できますが、実行の戻り値を取得できません。
2. EXE プログラムでの入力状況の処理方法 (メインパラメーターを除く、コマンドラインに配置できるため、ここで処理する必要があるのは、入力が必要な cin、scanf およびその他のパラメーターです)実行時):
C++ プログラムは次のとおりです: test.cpp
#include
名前空間 std を使用します;
int main()
{
int a, b;
シン >>> b;
cout }
次に、PHP でエコー パイプを使用するだけです:
system("echo 1 2 | test.exe");
ただし、C++プログラム内で行単位で文字列入力がある場合、例えば
#include
#include
名前空間 std を使用します;
int main()
{
文字列 str;
while(getline(cin, str))
{
cout <
}
Linux プラットフォームを使用している場合、複数行を入力する必要がある場合は、echo -e パイプを使用して問題を解決できます。
system("echo -e ‘str1nstr2’ | test.exe");
Windows プラットフォームで echo に -e パラメータがない場合は、次のように echo を一度に 2 回または複数回実行する必要があります。
system("( echo str1 & echo str2 ) | test.exe");