トップページ > コンテンツ > プログラミング入門 > Ajax入門 > PHP入門 > PHP基本まとめ > 外部コマンドの実行

外部コマンドの実行には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);
とするとうまくいくといった問題がある。似たような経験をした人がいるらしく、
http://kanonji.blog4.fc2.com/?tag=phpを見ると色々な試行錯誤を見ることができる。

尚、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