ホームページ  >  記事  >  バックエンド開発  >  3 つの PHP 呼び出しシステム コマンド関数の違いと関連性_PHP チュートリアル

3 つの PHP 呼び出しシステム コマンド関数の違いと関連性_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:30:091019ブラウズ

Linux システムのシェル コマンドを実行するときに使用しますこれら 3 つのコマンドはすべて Linux システムのシェル コマンドを実行できますが、実際には異なります。

system() は、シェルの結果。

exec() は結果を出力せず、シェル結果の最後の行を返します。すべての結果は返された配列に保存できます。

passthru()はコマンドを呼び出すだけで、コマンドの実行結果をそのまま標準出力装置に出力します。

同じこと: コマンド実行のステータスコードを取得できます

PHP で外部コマンドを呼び出すには、次の 3 つの方法が使用できます:

PHP が提供する特別な関数を使用する

PHP は合計 3 つの方法を提供します特殊関数 外部コマンドを実行する PHP は、システム コマンド関数 system()、exec()、passthru() を呼び出します。

system()

プロトタイプ: string system (string command [, int return_var])

system() 関数は、他の言語の関数と似ており、指定されたコマンドを実行するためにシステム コマンド関数を呼び出します。そして結果を出力して返します。 2 番目のパラメーターはオプションであり、コマンドの実行後にステータス コードを取得するために使用されます。

例:

system("/usr/local/bin/webalizer/webalizer");

exec()

プロトタイプ: string exec(string command [, string array [, int return_var]])

exec() 関数は、PHP の system() 呼び出しシステム コマンド関数と似ていますが、指定されたコマンドを実行しますが、結果は出力されませんが、結果の最後の行が返されます。コマンド結果の最後の行のみを返しますが、2 番目のパラメーター配列を使用すると、配列の最後に結果を 1 行ずつ追加することで完全な結果を取得できます。したがって、配列が空でない場合は、呼び出す前に unset() を使用して配列をクリアするのが最善です。第3パラメータは第2パラメータを指定した場合のみ、コマンド実行時のステータスコードを取得できます。

例:

exec("/bin/ls -l");
exec("/bin/ls -l", $res);
exec("/bin/ls -l", $ res, $rc);

passthru()

プロトタイプ: void passthru (string command [, int return_var])
passthru () この PHP 呼び出しシステム コマンド関数は、結果を返しません。ただし、コマンドの実行結果はそのまま標準出力装置に出力されます。したがって、 passthru() 関数は、pbmplus (元の画像のバイナリ ストリームを出力する、Unix で画像を処理するツール) のようなプログラムを呼び出すためによく使用されます。コマンド実行時のステータスコードも取得できます。

例:

header("Content-type: image/gif");
passthru("./ppmtogif Hunte.ppm");

上記は、3 つの PHP 呼び出しシステム コマンド関数のパフォーマンスの比較です。 ,お役に立てれば幸いです。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446317.html技術記事 Linux システムのシェル コマンドを実行する場合、これら 3 つのコマンドはすべて Linux システムのシェル コマンドを実行できますが、実際には異なります。system() は最後の...
を出力して返します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。