ホームページ バックエンド開発 PHPチュートリアル PHP_PHP チュートリアルで Web 経由で C/C++ アプリケーションを実行する

PHP_PHP チュートリアルで Web 経由で C/C++ アプリケーションを実行する

Jul 13, 2016 pm 05:19 PM
c++ linux php unix web 1つ 学ぶ アプリ 埋め込む 導入 合格

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 ?Parameter one?Parameter two?Parameterthree

このプログラムの機能は、渡されたパラメータの数と各パラメータの値を出力することであり、その後、PHPスクリプトプログラムを使用してコンパイルを実行できますC++ プログラム。

お気に入りのテキスト エディタを使用して、Sampleapp.cpp という名前の新しいファイルを作成し、このファイルに次のコードを入力します。 argv[])
{
cout <; (argc-1 == 1 ? " : "s") << <BR>; cout < ; (argc-1 == 1 ? "これ" : "これら")<BR> << " 議論" << (argc-1 == 1 ? "" : "s") <BR> << (argc-1 == 1 ? "is" : "are") <<endl <endl;<BR> for(int i = 1; i < ; argc; i++)<BR> cout << "[" <<i << "] " <<argv[i] <<<BR> }<BR> C++ プログラムには、プログラムのエントリ ポイント main() が含まれています。main() 関数は、argc (コマンド行で渡されるパラメーターの数) と argv (コマンドの実際の値を含む文字ポインターの配列) の 2 つのパラメーターを取ります。渡されたパラメータ)。これら 2 つのパラメータは、C++ コンパイラによって自動的にキャプチャされます。 <BR> <BR><BR> cout <<endl<<「<<argc-1<<「引数」<BR> << ) << "." << endl;;<BR> <BR> この文の意味は、実行コマンドラインから渡されたパラメータの数を取得することです。文字ポインター配列 Argv は 0 から取得されます。これには、少なくとも 1 つの実際の値 (つまり、このプログラムのパスと名前) が含まれます。この値は、C++ コンパイラーによって自動的に追加されます。条件演算子「?」は、コマンド ラインから複数のパラメーターが渡されるかどうかを判断するために使用されます。たとえば、コマンド ラインから 2 つのパラメーターが渡された場合、プログラムは次の情報を出力します。これらの" )<BR> << " 議論" << (argc-1 == 1 ? "" : "s") << " "<BR> << (argc-1 == 1 ? "は" : "は") << ": " "</p></font><br><p> </p> 次に、条件演算子も使って別の文を出力します。ただし、プログラム実行コマンド ラインからパラメータを渡さなくても、main 関数の argv[] パラメータには値が含まれることに注意してください。同様に、コマンドラインからプログラムに 2 つのパラメータを渡すと、プログラムは次の情報を出力します:<BR> <BR> これらの引数は:<BR> <BR><CODE> for(int i = 1; i < argc; i++)<BR> cout < < "[" << i << "] " << argv[i] <<
最後に、main 関数はコマンドラインから渡された各パラメーターを出力しますこの関数は、単純な for(;;) ループ文を使用して、パラメーターの数に応じて 1 つずつパラメーター値を出力できます。プログラムに「first」と「second」という 2 つのパラメータを渡すと、for ループで出力される結果は次のようになります。

[1] ?first
[2] ?second

以上がこの C++ の簡単な説明です。プログラムとその関数 cout 関数を使用して、コマンド ラインで渡されたパラメーターを出力画面に表示するだけです。次に、
windows
プラットフォームを使用している場合は、この .cpp ファイルをコンパイルします。ここでは、ほとんどの Unix マシンで提供されている G++ コンパイラを使用して、このソース ファイルをコンパイルします。ただし、マシンに G++ がインストールされていることを確認するには、次のコマンドを入力します。インストールされている場合、Unix シェルは G++ が存在するフルパスを表示します。インストールされていない場合は、「コマンドが見つかりませんでした」というメッセージが表示されます。ここで G++ コマンドを入力します。ソース ファイルが配置されているディレクトリ:
g++ -c sampleapp.cpp.

このコマンドを使用すると、.cpp ファイルをマシン コードを含むターゲット ファイルにコンパイルします。ls?a コマンドを使用すると、それがわかります。新しいファイルsampleapp.oがこのディレクトリに表示されます。これは、.cppソースファイルがマシンコードにコンパイルされた結果です。ただし、次のG++コマンドも入力する必要があるため、最終的に必要なのは実行可能ファイルです。
g++ sampleapp.cpp ?o sampleapp
このように、sampleapp という名前の実行可能ファイルを取得しましたが、Unix での実行可能ファイルにはサフィックスが付いていません

これでプログラムの実行結果を確認できます。以下のコマンドの場合:
sampleapp one -two /three


次の実行結果が確認できます:
You pass 3 argument. These argument are:


[1] one
[2] ?two
[3] /three

さて、実行可能なC++プログラムです。生成が完了したら、Web ブラウザからこのプログラムにアクセスできる PHP チュートリアル プログラムを生成します。


このニュースには合計
3
ページがあり、現在

2

1

2 3 インターネット経由で C++ プログラムを呼び出すには、PHP スクリプト プログラムを生成する必要があります。この PHP スクリプトにはフォームがあり、ユーザーが Sampleapp プログラムに渡すことができるパラメーターを入力できるようになります。 PHP スクリプトのコードは長すぎるため、ここではすべてをリストしません。必要に応じて、以下のアドレスからダウンロードできます。 (Phpコード)


if(@$submit)

Formフォームの送信後に渡され、デフォルトでは空の値になります。 @ 記号の機能は、変数 $submit の値が存在しない場合に、関連するエラー メッセージを無視することです。

変数 $submit はデフォルトでは空であるため、最初に else{} 内のコードが実行され、単にブラウザ上にフォームが表示されます。フォームの action 属性は変数 $PHP_SELF に設定されます。つまり、このページはフォームが送信された後に返されます。同時に、フォーム フォームにはテキスト入力バーが含まれており、ユーザーはこれを使用して、C++ プログラムに渡すコマンド ライン パラメーターを入力できます。フォームは以下の通りです:
実行コマンドを入力してフォームを送信すると、変数 $submit (Go ボタンの名前) に値が取得され、PHP 教科書では if{} の間のコードが実行されます。


if($args == "")

echo "

gt;引数が入力されていません。

"; else<BR> {<BR> Echo "<h1>SampleApp Result</h1>" ;<br> $command = "/htdocs/sampleapp " .escapeshellcmd($args);<br> passthru($command);<br> }<br> 変数 $args は自動的に生成され、その値はテキスト入力バーから渡されます。フォームフォームの値。情報が入力されない場合、プログラムは単に値が入力されていないことをユーザーに通知します。 <br> <br> ユーザーが空ではない情報を入力すると、プログラムはテキスト フィールドの値、変数 $args を C++ プログラムに渡します。次のコードは C++ プログラムを実行するための実行コマンドです: <br> <br><br> $command = "/htdocs/sampleapp " .ecapeshellcmd($args);<br><br> 関数 eacapeshellcmd は、" などの呼び出しをフィルタリングするセキュリティ チェック ツールとして使用されます。 、「」、「」、「」、およびその他の特殊文字。これにより、一部のユーザーが特定の文字を入力して内部システム コマンドを呼び出すことができなくなります。 <code> <br> 例えば、Formフォームのテキストフィールドに「1 ?two /three」と入力すると、変数$commandの値は、 /htdocs/sampleapp 1 ?two /three<br> <br> ということがわかります。プログラムの定義。sampleapp 絶対パス。この例では、プログラム ファイルは /htdocs ディレクトリにあります。独自のプログラムが配置されているディレクトリに応じて、対応する変更を加えることができます。 <br> <br> passthru($command);<br> <br> 最後に、PHPの関数passthruを使って、変数$commandに含まれるコマンドを実行し、元の実行結果をブラウザに出力します。私のサーバーでは、結果を返す HTML ページは次のとおりです: <br> w この記事を終える前に、遭遇する可能性のあるいくつかの問題についてお話したいと思います。まず、sampleapp.php チュートリアル プログラムを実行したときに、プログラムからの出力情報が表示されない場合は、セーフ モードがオンになっている可能性があります。その場合、システムは PHP スクリプトによるシステム内部プログラムの実行を許可しません。セーフ モードをオフにする方法については、
の Web ページ http://www.php.net/manual/en/features.safe-mode.php を参照してください。


http://www.bkjia.com/PHPjc/532648.html
www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/532648.html

技術記事

1. はじめに Unix/Linux についてある程度の知識がある場合は、そのほとんどに C コンパイラと C++ コンパイラ、つまりそれぞれ GCC と G++ が付属していることを知っているはずです。 UnixはプログラムのインストールやMake...



など、様々な場所で使われています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP:サーバー側のスクリプト言語の紹介 PHP:サーバー側のスクリプト言語の紹介 Apr 16, 2025 am 12:18 AM

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPとWeb:その長期的な影響を調査します PHPとWeb:その長期的な影響を調査します Apr 16, 2025 am 12:17 AM

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

パフォーマンスレース:ゴラン対c パフォーマンスレース:ゴラン対c Apr 16, 2025 am 12:07 AM

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

VSCODE前の次のショートカットキー VSCODE前の次のショートカットキー Apr 15, 2025 pm 10:51 PM

VSコードワンステップ/次のステップショートカットキー使用法:ワンステップ(後方):Windows/Linux:Ctrl←; macOS:CMD←次のステップ(フォワード):Windows/Linux:Ctrl→; macOS:CMD→

Linuxの主な目的は何ですか? Linuxの主な目的は何ですか? Apr 16, 2025 am 12:19 AM

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

vscodeで中国モードを切り替える方法 vscodeで中国モードを切り替える方法 Apr 15, 2025 pm 11:39 PM

vs中国モードを切り替えるコード:設定インターフェイスを開き(Windows/Linux:Ctrl、MacOS:CMD、)[エディター:言語]設定を検索します。ドロップダウンメニューで[中国語]を選択します。

See all articles