現在の位置: ホーム> 最新記事一覧> PHPコマンドラインライティングシェルスクリプトインスタンスの詳細な説明| PHPコマンドラインチュートリアル

PHPコマンドラインライティングシェルスクリプトインスタンスの詳細な説明| PHPコマンドラインチュートリアル

gitbox 2025-07-29

導入

PHPは人気のバックエンド開発言語です。 Webバックエンドで動的関数の実装に加えて、PHPスクリプトはコマンドラインモードを介して実行することもできます。この記事では、PHPコマンドラインモードでSimple Shell Scriptインスタンスを作成する方法について詳しく説明します。

環境の準備

開始する前に、PHPが正常にインストールされ、コマンドラインでPHPコマンドを実行できることを確認してください。端末に次のコマンドを入力して、次のようなコマンドを入力して確認できます。

 <span class="fun">PHP -V</span>

シェルスクリプトを作成します

ファイルを作成します

まず、テキストエディターを開き、shell.phpというファイルを作成し、次のコードをファイルに追加します。

 <span class="fun"><?php <br /> $ cmd = $ _post [&#39;cmd&#39;]; <br /> $ result = shell_exec($ cmd); <br /> echo "command:"。 $ cmd。 "<br/>"; <br /> echo "result:"。 $ result。 "<br/>"; <br /> echo "result:"。 $ result。 "<br/>"; <br />?></span>

このスクリプトでは、$ _POSTアレイからユーザー入力コマンドを取得し、shell_exec関数を使用してコマンドを実行し、結果を$ result変数に割り当てます。最後に、コマンドと結果は、Echoステートメントを介して画面に出力されます。

スクリプトを実行します

shell.phpファイルを保存および終了した後、次のコマンドを使用してコマンドラインでスクリプトを実行します。

 <span class="fun">php shell.php</span>

これで、コマンドラインで実行できるシンプルなシェルスクリプトを正常に作成しました。

シェルスクリプトをテストします

シェルスクリプトをテストするには、いくつかの簡単なコマンドを実行することができます。コマンドラインに次のコマンドを入力します。

 <span class="fun">php shell.php</span>

次に、コマンドを入力します。

<span class="fun">エコーハローワールド</span>

次のような出力が表示されます。

<span class="fun">コマンド:Echo Hello World <BR />結果:Hello World</span>

これは、シェルスクリプトが適切に機能しており、一般的なコマンドを実行できることを示しています。

セキュリティを追加します

スクリプトのセキュリティを強化するために、ユーザーが入力したコマンドを検証できます。たとえば、ユーザーが特定の特定のコマンドを実行できるか、入力をフィルタリングしてエスケープすることのみを許可します。

以下は、猫のコマンドのみを実行することを許可される例を示します。他のコマンドは拒否されます。

 <span class="fun"><?php <br /> $ cmd = $ _post [&#39;cmd&#39;]; <br /> $ approadcommands = array( &#39;cat&#39;); <br /> if(in_array($ cmd、$ abaturecommands)){<br /> $ result = shell_exec($ cmd); $ cmd。 "<br />"; <br /> echo "result:"。 $ result。 "<br />"; <br /> else {<br /> echo "無効なコマンド!"; <br />} <br /></span>

ユーザーが実行できるコマンドのリストを制限することにより、潜在的なセキュリティリスクを回避できます。

要約します

この記事を通して、PHPコマンドラインモードでシェルスクリプトを書き込み実行する方法を学びました。ユーザーが入力したコマンドを取得して実行する方法、それらを実行する方法、出力を表示する方法、および簡単なセキュリティ対策でスクリプトのセキュリティを改善する方法を示します。

コマンドラインモードを使用すると、いくつかの自動化されたタスクまたはバッチ操作をより便利に実行できます。この記事がPHPコマンドラインモードをよりよく理解し、使用するのに役立つことを願っています。