67

の 3 つの PHP 関数で外部コマンドを実行することが可能です。

system();
exec();
shell_exec();

しかし、それらの違いは何ですか?特定のアプリケーションにもかかわらず、ほとんどの場合、 は同等に使用できます。それらが同等に使用できる場合、どちらが好ましいかを知りたいです。たとえば、ファイルの解凍またはフォルダーの圧縮 (tar コマンドを使用) では、どちらが優先されますか (おそらくパフォーマンスの観点から)?

更新:別の質問で、これらの関数のさまざまな側面を説明する非常に役立つリンクを見つけました。セキュリティの問題やその他の側面をよりよく理解するために他の人が使用する可能性があるため、ここでリンクを共有します.

4

1 に答える 1

93

exec — 外部プログラムを実行する

system — 外部プログラムを実行し、出力を表示します

shell_exec — シェル経由でコマンドを実行し、完全な出力を文字列として返す

したがって、出力が必要ない場合は、exec を使用します。

詳細:

于 2012-05-31T06:55:18.463 に答える