我有一个 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