外部コマンドの実行にはexec(),system(),shell_exec(),passthru()等がある。
パイプを使用する場合には、popen()や
proc_open()等を使うと良い。
ただし、これらの外部コマンドは
1.safe_modeの状態だと制約を受けるので動作しない
2.もしかするとProgram Filesのように空白があるとうまくいかない可能性が?
WindowsのPHPのせいなのかはよく分からないが、挙動がおかしいことがある。
通常、
$command = 'C:\\Program Files\\Example\\example.exe';
exec($command);
で実行されて良さそうなものだが、空白がまずいらしく
$command = '"C:\\Program Files\\Example\\example.exe"';
exec($command);
尚、windowsの外部コマンドを指定するときにはcmd /c dirのように指定しないといけない場合もあるらしい。
返り値として$outputを変数と指定したときの利用例
$command = "dir"; //$command = "command.com /c dir c:\\"
exec($command,$output);
print_r($output);
とすると、dirの実行結果が表示される。
最終更新:2011年04月03日 12:45