1. はじめに
Unix/Linux についてある程度の知識がある場合は、ほとんどのコンパイラに C コンパイラと C++ コンパイラ (それぞれ GCC と G++) が付属していることを知っているはずです。 Unix では、プログラムのインストールや Make など、さまざまな場所でこれらのコンパイラが使用されます。いくつかのコンソール コマンド、C++ および PHP を使用して、PHP プログラムで実行できる完全な C++ プログラムの例を生成し、対応する出力結果を取得する方法を示します。まず C++ プログラム コードを生成してコンパイルし、次に PHP 関数 passthru を使用してこのプログラムを実行する方法について説明します。ある意味、この記事は、Web ページを通じて一般的なプログラムにアクセスする方法を提供します。
この記事をよりよく理解するには、Apache と最新バージョンの php を実行する UNIX/Linux サーバーが必要です。同時に、C++ と UNIX コンソール コマンドも習得する必要があります。もちろん、PHP プログラミングの経験も必要です。
2. C++ プログラムを作成します
たとえば、コマンドラインからパラメータを受け取ることもできる単純な C++ プログラムを作成し、それに Sampleapp という名前を付けて、それに 3 つのパラメータを渡すことができます。次の方法 異なるパラメータ:
Sampleapp ? パラメータ 1? パラメータ 2? パラメータ 3
このプログラムの機能は、渡されたパラメータの数と各パラメータの値を出力することです。 PHP スクリプトを使用して、コンパイルされた C++ プログラムを実行します。
お気に入りのテキスト エディタを使用して、Sampleapp.cpp という名前の新しいファイルを作成し、このファイルに次のコードを入力します:
#include
int main(int argc, char* argv [])
{
cout < cout << (argc-1 == 1 ?) << " < < ;for(int; return 0; この C++ プログラムには main()、main( ) 関数が含まれていますargc (コマンドラインから渡されるパラメータの数) と argv (渡されるパラメータの実際の値を含む文字ポインタの配列) の 2 つのパラメータを取ります。これら 2 つのパラメータは、C++ コンパイラによって自動的にキャプチャされます。 << (argc-1 == 1 ? "is" : "are") << ": " << endl << endl; 次に、条件演算子を使用して別の文を出力します。ただし、プログラム実行コマンド ラインからパラメータを渡さなくても、main 関数の argv[] パラメータには値が含まれることに注意してください。同様に、コマンドラインからプログラムに 2 つのパラメータを渡すと、プログラムは次の情報を出力します。 < argv[i] << endl;
ソース ファイルがあるディレクトリに次の G++ コマンドを入力します。 cpp.
このコマンドを使用して、.cpp ファイルをマシンコードを含むターゲット ファイルにコンパイルします。 ls ?a コマンドを実行すると、このディレクトリに新しいファイル sampleapp.o が表示されます。これは、.cpp ソース ファイルがマシン コードにコンパイルされた結果です。ただし、最終的に必要なのは実行可能ファイルです。次の G++ コマンドも入力する必要があるためです:
g++ sampleapp.cpp ?o sampleapp
このようにして、sampleapp という名前の実行可能ファイルを取得します。ただし、Unix での実行可能ファイルは Windows とは異なり、拡張子がつかないことに注意してください。
次のコマンドを実行すると、プログラムの実行結果が確認できます:
sampleapp one -two /three 3つの引数を渡しました。これらの引数は次のとおりです:
[1] one [2] ?two [3] /three
実行可能な C++ プログラムが生成されたので、Web 経由でアクセスできるプログラムを生成します。ブラウザからこのプログラムの PHP チュートリアルにアクセスします。
3. PHP スクリプト プログラムを生成する
インターネット経由で C++ プログラムを呼び出すには、PHP スクリプト プログラムを生成する必要があります。この PHP スクリプトにはフォームがあり、ユーザーが Sampleapp プログラムに渡すことができるパラメーターを入力できるようになります。 PHP スクリプトのコードは長すぎるため、ここではすべてをリストしません。必要に応じて、以下のアドレスからダウンロードできます。 (Phpコード)if(@$submit)
{ } else { }
http://www.bkjia.com/PHPjc/446993.html
www.bkjia.com