ホームページ > バックエンド開発 > PHPチュートリアル > php_PHP チュートリアルで exec、system、およびその他の関数を使用してシステム コマンドを呼び出す

php_PHP チュートリアルで exec、system、およびその他の関数を使用してシステム コマンドを呼び出す

WBOY
リリース: 2016-07-13 17:42:17
オリジナル
757 人が閲覧しました

PHPの組み込み関数execやsystemはシステムコマンド(シェルコマンド)を呼び出すことができ、もちろんpassthruやescapeshellcmdなどの関数もあります。

多くの場合、PHP の exec、system、およびその他の関数を使用してシステム コマンドを呼び出すと、作業をより適切かつ迅速に完了するのに役立ちます。たとえば、2 日前に .rar ファイルをバッチ処理していたとき、exec は非常に役に立ちました。

今日は、よく使われる通話システムの機能を整理し、私の経験を皆さんと共有します。

注: これら 2 つの関数を使用したい場合は、php.ini のセーフ モードをオフにする必要があります。オフにしないと、セキュリティ上の理由から、PHP ではシステム コマンドの呼び出しが許可されません。

まず、PHP マニュアルでこれら 2 つの関数の説明を見てみましょう:

Exec --- 外部プログラムを実行します

構文: string exec ( string command [, array &output [, int &return_var]] )

説明:

Exec() は指定されたコマンドを実行しますが、何も出力しません。コマンドを実行してコマンドからすべての情報を取得する必要がある場合は、 を使用できます。 passthru() 関数。

パラメータ配列が指定されている場合、指定された配列にはコマンドによって出力された各行が埋め込まれます。 注: 配列にすでに要素が含まれている場合、exec() はそれを配列の末尾に追加します。この関数で要素を追加したくない場合は、配列を exec() に渡す前に unset() を呼び出すことができます。

パラメータ array と return_var が与えられた場合、実行に戻されたステータスコマンドがこの変数に書き込まれます。

注: ユーザー入力からのデータがこの関数に渡されることを許可する場合は、ユーザーがシステムをだまして任意のコマンドを実行できないようにするために、escapeshellcmd() を使用する必要があります。

注: この関数を使用してプログラムを開始し、バックグラウンドで実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたは何らかの出力データ ストリームにリダイレクトされていることを確認する必要があります。そうしないと、PHP は終了するまでハングします。プログラムの実行が終了します。

システム --- 外部プログラムを実行し、出力を表示します

構文: string system ( string command [, int &return_var] )

説明:

System()は指定されたコマンドcommandを実行し、結果を出力します。パラメータ return_var が指定されている場合、実行されたコマンドのステータス コードがこの変数に書き込まれます。

注: ユーザー入力からのデータがこの関数に渡されることを許可する場合は、ユーザーがシステムをだまして任意のコマンドを実行できないようにするために、escapeshellcmd() を使用する必要があります。

注: この関数を使用してプログラムを開始し、バックグラウンドで実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたは何らかの出力データ ストリームにリダイレクトされていることを確認する必要があります。そうしないと、PHP は終了するまでハングします。プログラムの実行が終了します。

PHPがサーバーモジュールとして実行されている場合、system()は各行を出力した後にWebサーバーの出力バッファを自動的にクリアしようとします。

成功した場合はコマンドの最後の行を返し、失敗した場合は false を返します。

コマンドを実行して、コマンドからすべてのデータを取得する必要がある場合は、 passthru() 関数を使用できます。

これら 2 つはシステム シェル コマンドを呼び出すために使用されます。

違い:

Execは、すべての実行結果を$output関数(配列)に返すことができます。$statusは、0が成功、1が失敗を意味します。

systerm は $output 関数を提供する必要はありません。同様に、$return_var は実行ステータス コードです。 0 は成功、1 は失敗です。

実行例:

リーリー

システム例:

リーリー

実行して効果を確認できます

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

tru​​ehttp://www.bkjia.com/PHPjc/486080.html技術記事 PHPの組み込み関数execやsystemはシステムコマンド(シェルコマンド)を呼び出すことができ、もちろんpassthruやescapeshellcmdなどの関数もあります。 多くの場合、php の exec、system、およびその他の関数は、システム コマンドを呼び出すために使用されます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート