PHP シェル スクリプトの使用を分析する_PHP チュートリアル
PHP の長い開発期間を経て、多くのユーザーが PHP をよく知っています。ここで私の個人的な理解を述べ、皆さんと議論します。ほとんどの場合、すべてに exec() コマンドとデータ配列を使用します。または、特に結果を気にしない場合は、より単純なコマンドに shell_exec() を使用します。 PHP シェル スクリプトを返す必要があるだけの場合は、 passthru() を使用します。さまざまな機会に異なる機能を使用することが多く、場合によってはそれらを交換可能です。
たとえば、アプリケーションで適切な権限 (管理者権限など) を持つユーザーが、あるサーバーから別のサーバーに 50 個の PDF ファイルを送信したいと考えています。次に、ユーザーはアプリケーション内の正しい場所に移動し、「転送」をクリックし、送信する必要がある PDF を選択して、「送信」をクリックする必要があります。その過程で、フォームには、次に示すように return オプション変数を使用して passthru() 経由で rsync スクリプトを実行する PHP スクリプトが含まれる必要があります。
リスト 1. passthru() 経由で rsync スクリプトを実行するためのサンプル PHP スクリプト
<ol class="dp-xml"><li class="alt"><span><span class="tag"><?</SPAN><SPAN class=tag-name>php</SPAN><SPAN> </SPAN></SPAN><LI class=""><SPAN>passthru('xfer_rsync.sh',$returnvalue); </SPAN><LI class=alt><SPAN> </SPAN><LI class=""><SPAN>if ($returnvalue != 0){ </SPAN><LI class=alt><SPAN>//we have a problem! </SPAN><LI class=""><SPAN>//add error code here </SPAN><LI class=alt><SPAN>}else{ </SPAN><LI class=""><SPAN>//we are okay </SPAN><LI class=alt><SPAN>//redirect to some other page </SPAN><LI class=""><SPAN>} </SPAN><LI class=alt><SPAN></SPAN><SPAN class=tag>?></span><span> </span></span></li></ol>
アプリケーションでプロセスやファイル、またはそれらのプロセスやファイルに関するデータをリストする必要がある場合は、この記事でまとめたコマンドのいずれかを使用して簡単に実現できます。この目的。たとえば、単純な grep コマンドを使用すると、特定の検索条件に一致するファイルを見つけることができます。これを exec() コマンドとともに使用すると、結果が配列に保存され、HTML テーブルまたはフォームを構築できるようになり、さらに他のコマンドを実行できるようになります。
これまで、ユーザー生成イベントについて説明してきました。ユーザーがボタンを押すかリンクをクリックするたびに、PHP は対応するスクリプトを実行します。スタンドアロンの PHP スクリプトを cron または他のスケジューラとともに使用して、興味深い効果を実現することもできます。たとえば、バックアップ スクリプトがある場合は、cron 経由で実行することも、PHP スクリプトにパッケージ化して実行することもできます。なぜこれを行うのですか? 冗長だと思われますよね?コード。エラーが発生した場合は、エラー ログまたはデータベースにログを記録したり、警告電子メールを送信したりできます。スクリプトが成功した場合は、生の出力をデータベースにダンプできます (たとえば、rsync には冗長モードがあり、後で問題を診断するのに役立ちます)。
セキュリティ
ここでセキュリティについて簡単に説明します。ユーザー入力を受け入れて情報をシェルに渡す場合は、ユーザー入力をフィルターした方がよいでしょう。 sudo (スーパーユーザーとして実行) や rm (削除) など、有害で許可されていないと思われるコマンドを削除します。実際には、おそらくユーザーにオープンリクエストを送信させるのではなく、リストから選択させることを望んでいるでしょう。
たとえば、ファイルのリストを引数として受け取る転送プログラムを実行する場合は、一連のチェックボックスを使用してすべてのファイルをリストする必要があります。ユーザーは、[送信] をクリックしてファイルを選択および選択解除し、rsync シェル スクリプトをアクティブにすることができます。ユーザーは自分でファイルを入力したり、正規表現を使用したりすることはできません。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
