一尘不染

将多个PHP变量传递给shell_exec()?

php

我正在使用shell_exec方法从PHP调用test.sh。

$my_url="http://www.somesite.com/";
$my_refer="http://www.somesite.com/";
$page = shell_exec('/tmp/my_script.php $my_url $my_refer');

但是,命令行脚本说它仅收到1个参数:/tmp/my_script.php

当我将呼叫更改为:

码:

$page = shell_exec('/tmp/my_script.php {$my_url} {$my_refer}');

它说它收到了3个参数,但是argv [1]和argv [2]为空。

当我将呼叫更改为:

码:

$page = shell_exec('/tmp/my_script.php "http://www.somesite.com/" "http://www.somesite.com/"');

脚本最终将按预期接收所有3个参数。

您是否始终需要使用脚本发送仅带引号的文本,并且不允许发送$ var这样的变量?还是有一些特殊的方式必须发送$ var?


阅读 336

收藏
2020-05-29

共1个答案

一尘不染

需要发送带配额的参数,因此您应该像这样使用它:

$page = shell_exec("/tmp/my_script.php '".$my_url."' '".$my_refer."'");
2020-05-29