Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态创建shell_exec的字符串';行不通_Php_Shell_Shell Exec - Fatal编程技术网

Php 动态创建shell_exec的字符串';行不通

Php 动态创建shell_exec的字符串';行不通,php,shell,shell-exec,Php,Shell,Shell Exec,我动态创建一个字符串并将其传递给shell_exec,但这不起作用 $b = 'args1'; shell_exec('java -jar jar1.jar '.$b.' args2'); 但当我使用固定字符串时,效果很好: shell_exec('java -jar jar1.jar args1 args2'); 我在想,在某个地方创建的字符串有问题。我不知道如何解决这个问题,任何帮助将不胜感激 那是不可能的。如果显示真实的代码,则设置$b的方式可能有问题。可能需要引用参数,或者在参数周围

我动态创建一个字符串并将其传递给shell_exec,但这不起作用

$b = 'args1';
shell_exec('java -jar jar1.jar '.$b.' args2');
但当我使用固定字符串时,效果很好:

shell_exec('java -jar jar1.jar args1 args2');

我在想,在某个地方创建的字符串有问题。我不知道如何解决这个问题,任何帮助将不胜感激

那是不可能的。如果显示真实的代码,则设置
$b
的方式可能有问题。可能需要引用参数,或者在参数周围留出空格。在shell命令中插入动态参数时,应使用
escapeshellarg()
。@Barmar在每个变量上使用escapeshellarg()可以解决此问题。