0

您好我正在尝试从 PHP 5 执行一个 jar

这是我正在执行的代码:

$command = '"java -jar WEB-INF\\lib\\FileReceiver.jar '.$address.' '.$service_port.' \"'.$command.'\" \"'.$filePath.'\""';
exec($command, $out);

但是 jar 没有被执行。我在 firebug 中记录了 $command 变量,并将输出插入到代码中,例如:

exec("java -jar WEB-INF\lib\FileReceiver.jar 127.0.1.1 2018 \"docs/document.txt \" \"C:\\apache-tomcat-7.0.26\\webapps\\test\\downloads\\doument.txt\"", $out);

给出正确的输出。我不明白为什么硬编码它有效,但包含相同信息的变量却没有。

有人可以帮我吗?

谢谢

4

2 回答 2

1

试试这样

$command = escapeshellarg($address).' '.escapeshellarg($service_port).' '.escapeshellarg($command).' '.escapeshellarg($filePath).' ';

exec('java -jar WEB-INF\\lib\\FileReceiver.jar '.$command, $out);
于 2012-04-04T02:34:26.363 回答
0

您在第一个片段中过度转义了双引号。

您使用单引号作为文字字符串分隔符,因此您不需要转义双引号。

另外,决赛'\""'应该是'"'

于 2012-04-04T02:36:49.993 回答