如何在PHP Shell_exec中正确处理空格?

Fre*_*411 4 php shell-exec

我通过cmd-line运行win2003服务器,PHP 526.

我有一个cmdline字符串:

$cmd = '  "d:\Prog Files\foo.exe" -p "d:\data path\datadir"  ';  
Run Code Online (Sandbox Code Playgroud)

试图在PHP代码中执行此操作

$out = `$cmd`;       # note use of backticks AKA shell_exec
Run Code Online (Sandbox Code Playgroud)

foo.exe导致失败,因为它将-p arg解释为"d:\ data".

但是,$cdm复制到Windows shell cmdline 的相同字符串会成功执行.

如何在PHP中正确处理空格shell_exec

Cia*_*lty 6

使用escapeshellarg()来转义你的参数,它应该使用适当的引号和你的平台的转义空格组合来逃避它(我猜你是在Windows上).