検索
ホームページphp教程php手册PHP チュートリアル: PHP でシェル スクリプトを使用する方法

PHP チュートリアル: PHP でシェル スクリプトを使用する方法

Jun 13, 2016 pm 12:01 PM
phpshell相互の作用説明書共有注文そしてそれ埋め込むチュートリアルユーザー脚本説明する言語入力

コマンド言語として、ユーザーが入力したコマンドを対話的に解釈して実行したり、一連のプリセット コマンドを自動的に解釈して実行したり、プログラミング言語としてさまざまな変数やパラメーターを定義し、独自の多くの高レベルの制御構造を提供します。ループや分岐を含む言語。
PHP は長い間発展してきたため、多くのユーザーが PHP をよく知っています。ここで私の個人的な理解を述べ、皆さんと議論します。ほとんどの場合、すべてに exec() コマンドとデータ配列を使用します。または、特に結果を気にしない場合は、より単純なコマンドに shell_exec() を使用します。 PHP シェル スクリプトを返す必要があるだけの場合は、 passthru() を使用します。さまざまな機会に異なる機能を使用することがよくありますが、それらが交換可能な場合もあります。

それはすべて私の気分と私が何を達成したいかによって異なります。もう 1 つの質問は、「彼らの強みは何ですか?」ということです。まったく手がかりがない場合、またはシェル コマンドを使用するのに最適なプロジェクトはあるものの、その使用方法がわからない場合は、ここで洞察を提供します。さまざまなバックアップ機能やファイル転送機能を提供するアプリケーションを作成している場合は、shell_exec() またはここで提供されている他のコマンドの 1 つを使用して、rsync がサポートされている PHP シェル スクリプトを実行することを選択できます。 PHP シェル スクリプトを作成して必要な rsync コマンドを組み込み、passthru() を使用してユーザーのコマンドまたは cron ジョブに基づいて実行できます。

たとえば、アプリケーションで適切な権限 (管理者権限など) を持つユーザーが、あるサーバーから別のサーバーに 50 個の PDF ファイルを送信したいと考えています。次に、ユーザーはアプリケーション内の正しい場所に移動し、「転送」をクリックし、送信する必要がある PDF を選択して、「送信」をクリックする必要があります。その過程で、フォームには、次に示すように return オプション変数を使用して passthru() 経由で rsync スクリプトを実行する PHP スクリプトが含まれる必要があります。

リスト 1. passthru() を通じて rsync スクリプトを実行するサンプル PHP スクリプト

コードをコピー コードは次のとおりです。


passthru('xfer_rsync.sh',$returnvalue);
if ($returnvalue != 0){
//問題があります! /ここにエラー コードを追加
}else{
//大丈夫です
//他のページにリダイレクトします
}
?>


プロセスやファイル、またはそれらのプロセスやファイルに関するデータを一覧表示する必要があるアプリケーションの場合、この記事でまとめたコマンドの 1 つを使用してこれを簡単に実行できます。たとえば、単純な grep コマンドは、特定の検索条件に一致するファイルを見つけるのに役立ちます。これを exec() コマンドとともに使用すると、結果が配列に保存され、HTML テーブルまたはフォームを構築できるようになり、さらに他のコマンドを実行できるようになります。

これまで、ユーザー生成イベントについて説明してきました。ユーザーがボタンを押すかリンクをクリックするたびに、PHP は対応するスクリプトを実行します。スタンドアロンの PHP スクリプトを cron または他のスケジューラとともに使用して、興味深い効果を実現することもできます。たとえば、バックアップ スクリプトがある場合は、cron 経由で実行することも、PHP スクリプトにパッケージ化して実行することもできます。

なぜこれを行うのですか? 冗長に思えますよね? それはそうではありません。このように考える必要があります。exec() または passthru() を介してバックアップ スクリプトを実行できます。次に、戻りコードの動作に基づいて何かを実行します。エラーが発生した場合は、エラー ログまたはデータベースにログを記録したり、警告電子メールを送信したりできます。スクリプトが成功した場合は、生の出力をデータベースにダンプできます (たとえば、rsync には冗長モードがあり、後で問題を診断するのに役立ちます)。

セキュリティ

ここでセキュリティについて簡単に説明します。ユーザー入力を受け入れて情報をシェルに渡す場合は、ユーザー入力をフィルターすることをお勧めします。 sudo (スーパーユーザーとして実行) や rm (削除) など、有害で許可されていないと思われるコマンドを削除します。実際には、おそらくユーザーにオープンリクエストを送信させるのではなく、リストから選択させることを望んでいるでしょう。

たとえば、ファイルのリストを引数として受け取る転送プログラムを実行する場合は、一連のチェックボックスを使用してすべてのファイルをリストする必要があります。ユーザーは、[送信] をクリックしてファイルを選択および選択解除し、rsync シェル スクリプトをアクティブにすることができます。ユーザーは自分でファイルを入力したり、正規表現を使用したりすることはできません。

この記事では、PHP シェルスクリプトの使い方を 2 つの側面から紹介します。ご参考になれば幸いです。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。