作成日:2018-08-02, 更新日:2023-04-06
基本
見ている感じ下記のような使い分けで良さげ
・出力結果を加工したいなら「exec()」。
・出力結果を見たいだけなら「system()」。
・処理の結果の合否が欲しいなら(引数が少ない)「system()」。
確か他にも実行方法があったような気がする・・・バッククォートでも実行できたような気がするけど・・・保留。
exec()
第2引数に変数名を設定すると、出力結果を行単位で配列にして格納してくれる。
$command = 'ls'; var_dump( exec($command, $outut, $status) ); // string(10) "web.config" // ←実行元? ファイル名ではない・・・よく分からないヤツ var_dump( $outut ); // exec()の出力結果が$oututに格納 // array(9) { // [0] => "oooooo.oooo" // [1] => "oooooo.oooo" // } var_dump( $status ); // exec()の処理の結果が$statusに格納(「0」がエラー無し) // int(0)
system()
$command = 'ls'; var_dump( system($command, $status) ); //oooooo.oooo //oooooo.oooo //string(10) "web.config" // ←実行元? ファイル名ではない・・・よく分からないヤツ var_dump( $status ); // system()の処理の結果が$statusに格納(「0」がエラー無し) //int(0)