我通过cmd-line运行win2003服务器,PHP 526.
我有一个cmdline字符串:
$cmd = ' "d:\Prog Files\foo.exe" -p "d:\data path\datadir" ';
试图在PHP代码中执行此操作
$out = `$cmd`; # note use of backticks AKA shell_exec
foo.exe导致失败,因为它将-p arg解释为"d:\ data".
但是,$cdm
复制到Windows shell cmdline 的相同字符串会成功执行.
如何在PHP中正确处理空格shell_exec
?
使用escapeshellarg()来转义你的参数,它应该使用适当的引号和你的平台的转义空格组合来逃避它(我猜你是在Windows上).