php における system と exec の違いは、system は外部プログラムを実行して出力を表示し、結果を出力して返すことができますが、exec は外部プログラムを実行し、結果は出力せず、最後の行を返します。結果。
#PHP で外部コマンドを呼び出すには、exec と system を使用できます。では、それらの違いは何なのでしょうか? この記事では、PHP における system と exec の違いを紹介します。
#1. exec ---外部プログラムの実行
string exec ( string $command [, array &$output [, int &$return_var ]] )
exec() 関数はその内容を配列の末尾に追加することに注意してください。配列の末尾に追加したくない場合は、unset() 関数を使用して配列をリセットしてから、exec() 関数に渡します。
$return_var コマンド実行後のステータスを返します。コマンド実行の成功値は 0
戻り値: シェルコマンドによって出力された最後の行
##ps: 2>&1 exec が失敗した場合のデバッグの 1 つの方法は、パイプライン コマンドを使用することです。2>&1 を使用すると、コマンドはシェル実行中にエラーを出力します。 $output variable 、この変数を分析のために出力します。
#例 1(1) コードの場所が見つかります。index.php ファイルの構造
##(2) コード $out = [34];
$res = exec('ls 2>&1',$out,$return_status);
var_dump($res);
echo '------';
var_dump($out);
echo '------';
var_dump($return_status);
zhangxueqing:demo playcrab$ php ./1/index.php /Users/playcrab/www/demo/1/index.php:10: string(11) "webuploader" ------/Users/playcrab/www/demo/1/index.php:12: array(10) { [0] => int(34) [1] => string(1) "1" [2] => string(6) "1.html" [3] => string(5) "1.php" [4] => string(10) "client.php" [5] => string(14) "design-pattern" [6] => string(3) "img" [7] => string(17) "jquery.blockUI.js" [8] => string(10) "static.php" [9] => string(11) "webuploader" } ------/Users/playcrab/www/demo/1/index.php:14: int(0)
2. システム ---
外部プログラムを実行し、出力を表示string system ( string $command [, int &$return_var ] )
成功した場合は 0 を返します。
$res = system('ls 2>&1',$return_status);var_dump($res);echo '------';var_dump($return_status);
2. 出力結果
概要:system() 関数 他の言語と同様に、指定されたコマンドを実行し、結果を出力して返します。 2 番目のパラメータはオプションであり、コマンドの実行後にステータス コードを取得するために使用されます。
exec () 関数は system() に似ています。また、指定されたコマンドを実行しますが、結果は出力しませんですが、結果の最後の行を返します。コマンド結果の最後の行のみを返しますが、2 番目のパラメーター配列を使用すると、配列の末尾に結果を 1 行ずつ追加することで完全な結果を取得できます。したがって、配列が空でない場合は、呼び出す前に unset() を使用して配列をクリアするのが最善です。第3パラメータは第2パラメータを指定した場合のみ、コマンド実行時のステータスコードを取得できます。推奨: 「PHP ビデオ チュートリアル
」以上がPHPのsystemとexecの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。