问题描述
|
我花了几个小时试图使这项工作成功,但没有成功。我在该网站上搜索了常见问题解答,以了解如何在我的帖子中很好地显示代码,但是没有找到任何东西,请提供任何提示?
我有以下命令可以在Linux服务器上的命令行上正常工作,但是当我将其传递给php exec函数并通过linux服务器上的apache运行它时,它将显示由脚本调用的使用信息,而不是该脚本的输出。
myTool -arg1 \"Arg1 value\" -arg2 value2 -arg3 value3
我试过了:
将整个命令字符串发送给exec
通过escapeshellcmd发送整个命令给执行
通过escapeshellarg将参数作为一个字符串“ 1”一起发送给exec
通过escapeshellarg分别将参数(例如::2ѭ)发送给exec
通过escapeshellcmd分别将参数(例如:-arg1 \"Arg1 value\"
)发送给exec
结果是没有输出或所调用脚本的使用情况信息,表明参数未正确传递。
这是代码:
$data = array();
$commandexec = \"/tools/myTool \";
$arg1 = \"-arg1 \\\"Arg1 value\\\"\";
$arg2 = \"-arg2 value2\";
$arg3 = \"-arg3 value3\";
$arguments_escaped = escapeshellarg($arg1). \" \". escapeshellarg($arg2). \" \".escapeshellarg($arg3);
$command_escaped_arguments = $commandexec . $arguments_escaped;
print \"<br>command_escaped_arguments: \". $command_escaped_arguments .\"<br>\";
$result = exec($command_escaped_arguments,&$data);
print_r($data);
这是apache服务器上php脚本的输出:
command_escaped_arguments: /tools/myTool \'-arg1 \"Arg1 value\"\' \'-arg2 value2\' \'-arg3 value3\'
Array ( [0] =>
[1] => myTool version 1.0
[2] => Usage: myTool -arg1 \"Some value\"
[3] => -arg3 option1|option2
[4] => [-arg2 value]
[5] => )
有人知道我想念什么吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)