ホームページ >バックエンド開発 >PHPチュートリアル >Web_PHP チュートリアルを通じて PHP を使用して C/C++ プログラムを実行する
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 つの異なるパラメーターを渡すことができます。
サンプルアプリ – パラメーター 1 – パラメーター 2 – パラメーター 3
このプログラムの機能は、渡されたパラメータの数と各パラメータの値を出力することです。その後、PHP スクリプト プログラムを使用して、コンパイルされた C++ プログラムを実行できます。
お気に入りのテキスト エディターを使用して、Sampleapp.cpp という名前の新しいファイルを作成し、このファイルに次のコードを入力します。
#含める
{
cout <
<< " 引数" <
for(int i = 1; i
この C++ プログラムには、プログラムのエントリ ポイント main() が含まれています。main() 関数は、argc (コマンド ラインから渡されるパラメータの数) と argv (渡されたパラメータの実際の値を含む文字ポインタ) の 2 つのパラメータを取ります。パラメータ)。配列)。これら 2 つのパラメータは、C++ コンパイラによって自動的にキャプチャされます。
cout <
この文は、実行コマンドラインから渡されたパラメータの数を取得することを意味します。文字ポインター配列 Argv は 0 から取得されます。これには、少なくとも 1 つの実際の値 (つまり、このプログラムのパスと名前) が含まれます。この値は、C++ コンパイラーによって自動的に追加されます。条件演算子「?」は、コマンド ラインから複数のパラメーターが渡されるかどうかを判断するために使用されます。たとえば、2 つのパラメーターがコマンドラインから渡された場合、プログラムは次の情報を出力します:
2 つの引数を渡しました。
cout << (argc-1 == 1 ? "これ" : "これら")
<< " 引数" <
次に、条件演算子を使用して別の文を出力します。ただし、プログラム実行コマンド ラインからパラメータを渡さなくても、main 関数の argv[] パラメータには値が含まれることに注意してください。同様に、コマンドラインからプログラムに 2 つのパラメーターを渡すと、プログラムは次の情報を出力します:
これらの引数は次のとおりです:
for(int i = 1; i
最後に、main 関数は、コマンドラインから渡された各パラメーターを 1 つずつ出力します。この関数は、単純な for(;;) ループステートメントを使用して、パラメーターの数に応じてパラメーター値を 1 つずつ出力します。 2 つのパラメーター「first」と Second「」をプログラムに渡すと、for ループによって出力される結果は次のようになります。
[1] -最初
[2] – 2番目
上記は、この C++ プログラムの簡単な説明です。その機能は非常に単純で、cout 関数を使用してコマンド ラインから渡されたパラメーターを出力画面に表示することです。
次に、この .cpp ファイルをコンパイルします。Windows プラットフォームを使用している場合は、使用しているサーバーに Telnet 接続する必要があります。ここでは、ほとんどの Unix マシンで提供されている G++ コンパイラを使用して、このソース ファイルをコンパイルします。ただし、マシンに G++ がインストールされていることを確認するには、次のコマンドを入力します。 G++ がすでにインストールされている場合、Unix シェルは G++ が存在する場所へのフルパスを表示します。インストールされていない場合は、「コマンドが見つかりませんでした」というメッセージが表示されます。ここから G++ をダウンロードできます。
ソースファイルが存在するディレクトリに次の G++ コマンドを入力します:
g++ -c サンプルアプリ.cpp
このコマンドを使用して、.cpp ファイルをマシン コードを含むターゲット ファイルにコンパイルします。 ls –a コマンドを使用すると、新しいファイルsampleapp.o がこのディレクトリに表示されることがわかります。これは、.cpp ソース ファイルがマシン コードにコンパイルされた結果です。ただし、次の G++ コマンドも入力する必要があるため、最終的に必要なのは実行可能ファイルです:
g++ サンプルアプリ.cpp –o サンプルアプリ
このようにして、sampleapp という名前の実行可能ファイルを取得します。ただし、Unix での実行可能ファイルは Windows とは異なり、拡張子がつかないことに注意してください。
次に、次のコマンドを実行すると、プログラムの実行結果を確認できます:
サンプルアプリ 1 - 2 / 3
次の実行結果が表示されます:
3 つの引数を渡しました
これらの引数は次のとおりです:
[1] 1つ
[2] –2
[3]/スリー
実行可能な C++ プログラムが生成されたので、Web ブラウザーを通じてこのプログラムにアクセスできる PHP チュートリアル プログラムを生成します。
3. PHPスクリプトプログラムを生成します
インターネット経由で C++ プログラムを呼び出すには、PHP スクリプト プログラムを生成する必要があります。この PHP スクリプトにはフォームがあり、ユーザーが Sampleapp プログラムに渡すことができるパラメーターを入力できるようになります。 PHP スクリプトのコードは長すぎるため、ここではすべてをリストしません。必要に応じて、以下のアドレスからダウンロードできます。 (PHPコード)
if(@$submit)
{
}
それ以外は
{
}
まず、スクリプト プログラムは、変数 $submit に値があるかどうかを確認します。この変数 $submit の値は、プログラムの後半でフォーム フォームが送信された後に渡されます。デフォルトは null 値です。 @ 記号の機能は、変数 $submit の値が存在しない場合に、関連するエラー メッセージを無視することです。
変数 $submit はデフォルトでは空であるため、else{} 内のコードが最初に実行され、単にブラウザ上にフォームが表示されます。フォームの action 属性は変数 $PHP_SELF に設定されます。つまり、このページはフォームが送信された後に返されます。同時に、フォーム フォームにはテキスト入力バーが含まれており、ユーザーはこれを使用して、C++ プログラムに渡すコマンド ライン パラメーターを入力できます。フォームを以下に示します:
実行コマンドを入力してフォームを送信すると、変数 $submit (Go ボタンの名前) が値を取得するため、PHP 教科書では if{} の間のコードが実行されます。
if($args == "")
エコー「
」