平成30/ 2018-10-23 21:59
PHP 外部コマンド system(), exec()


~~~~ exec() で戻り値無い場合は、array() が返る
  なので、以下の感じ。

exec('php /hoge.php', $res);
if( $res and $res[0]):
    echo $res[0]; # 取得成功

else: # 取得失敗
endif;



___ exec() を使うようにしよう。

exec("ls -lt {$registerDir}", $output);
print_r($output);
-
Array
(
    [0] => 合計 8
    [1] => -rw-r--r-- 1 apache apache 140  7月 24 16:51 c895c553dcb7ffe98de29dfcbf71d0c5.txt
    [2] => -rw-r--r-- 1 apache apache 140  7月 24 09:59 24e9bc6624c1834b339e00526b230ff2.txt
)
//
exec()は変数に格納できて便利。
でも、wget はダメだった。コマンドによるみたい。



system("ls -lt {$registerDir}");
-
合計 8
-rw-r--r-- 1 apache apache 140  7月 24 16:51 c895c553dcb7ffe98de29dfcbf71d0c5.txt
-rw-r--r-- 1 apache apache 140  7月 24 09:59 24e9bc6624c1834b339e00526b230ff2.txt
//
system()は標準出力されてしまうので不便。




___ PHP :: 外部コマンドを実行する関数「system」と「exec」の比較
            if(
            exec("/sbin/ifconfig | grep 'inet addr' | grep -v 127.0.0.1", $re) and
            !empty($re[0])
            ){
                $field[] = "ifconfig";
                $value[] = dbEsc(trim($re[0]));
            }
http://tm.root-n.com/programming:php:etc:system_exec