名前にスペースが含まれているファイルで動作するプログラムを実行する必要があるPHPスクリプトがあります。外部コマンド(例exec()
)を実行するためのほとんどのPHP関数は、コマンドラインを実行するために1文字列の引数を取ります。ただしescapeshellarg()
、入力を安全にするなどのことを行う必要があります。
配列を使用してPHPで外部コマンドを実行する方法はありますか?ではなく:
exec("ls -l ".escapeshellarg($filename));
私は行くことができます:
exec(array("ls", "-l", $filename));
これは、私が議論を逃れることを心配する必要がないことを意味します。escapeshellarg()
私が使用しているバージョンには非ASCII文字を削除するバグがあるため、の使用は避けたいと思います。
Javaにはこの機能がありますhttp://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#exec%28java.lang.String[]%29