3

在终端中,如何将字符串作为包含空格的参数传递。它实际上跳过了空格之后的部分,只接受第一个单词。

$word = 'soccer ball'
shell_exec('casperjs test.js --word='.$word);

那么我怎样才能逃脱它只运行这个命令的空格

casperjs test.js --word=soccer
4

2 回答 2

2

尝试用引号括起来:

casperjs test.js --word="soccer ball"
于 2012-10-16T23:36:09.117 回答
2

对于您描述的情况(shell中空格旁边还有其他特殊字符),PHP具有以下escapeshellarg功能:

$word    = 'soccer ball';
$command = sprintf('casperjs test.js --word=%s', escapeshellarg($word));
$result  = shell_exec($command);

我注意保留$word作为一个论点的价值:

casperjs test.js --word='soccer ball'

另见:

于 2012-10-16T23:56:11.287 回答