当前位置: 首页 > 知识库问答 >
问题:

将多个PHP变量传递给shell_exec()?[重复]

何涵衍
2023-03-14

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

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

然而,命令行脚本说它只收到一个参数: /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?

共有3个答案

皮自明
2023-03-14

变量不会在单个带引号的字符串内插值。此外,还应确保正确转义了参数。

 $page = shell_exec('/tmp/myscript.php '.escapeshellarg($my_url).' '.escapeshellarg($my_refer));
花永昌
2023-03-14

需要发送带有配额的参数,所以你应该像这样使用它:

$page = shell_exec("/tmp/my_script.php '".$my_url."' '".$my_refer."'");
孟品
2023-03-14

改变

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

$page=shell_exec(“/tmp/my_script.php$my_url$my_reference”)

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

还要确保在两个值上都使用escapeshellarg

例子:

$my_url=escapeshellarg($my_url);
$my_refer=escapeshellarg($my_refer);

 类似资料:
  • 问题内容: 我正在使用shell_exec方法从PHP调用test.sh。 但是,命令行脚本说它仅收到1个参数:/tmp/my_script.php 当我将呼叫更改为: 码: 它说它收到了3个参数,但是argv [1]和argv [2]为空。 当我将呼叫更改为: 码: 脚本最终将按预期接收所有3个参数。 您是否始终需要使用脚本发送仅带引号的文本,并且不允许发送$ var这样的变量?还是有一些特殊的

  • 问题内容: 我有Google地图提供的JavaScript值,需要将其保存在MySQL数据库中。 其实我有变量 我需要将该变量传递给PHP变量lugar 问题答案: 如果要在页面转换时进行操作,则可以通过表单或在URL中传递它,然后仅使用或接收变量。 如果您需要无缝完成它,那么您可能需要考虑使用AJAX。

  • 问题内容: 我有一个PHP会话变量,在整个会话过程中仍然有效。在开头部分,我包含了我的JavaScript文件。 如果需要以下内容,如何将会话变量传递到JavaScript文件中。 由于无法在JavaScript文件中识别出,因此上面的代码不起作用。因此,我必须放入PHP文件本身,但是如何将其保留在JavaScript文件中? 问题答案: 在您的PHP文件中,您可以将用户设置为全局变量: 在包含外

  • 问题内容: 好的,希望你们也能帮助我。我对jQuery和AJAX并不了解,也许我错过了一些非常简单的东西。我不能传递多个变量。 jQuery 因此,基本上,如果我运行此程序,它将运行正常,并且我的PHP脚本将对其进行处理。请注意,当我启用警报并显示加载的数据时,它会显示正确的信息(来自的信息),并且能够更新数据库。但是,一旦我添加了另一个变量,它就不会显示在警报框中加载的数据(如果我尝试显示来自两

  • 问题内容: 我正在一个项目中,该项目需要将多个列内容传递给php变量 我可以选择并将一列的内容传递给变量,但在多列上失败 我希望将不止一列内容传递给php变量 问题答案: 您要么需要将变量用作数组: 或将这些值连接到一个字符串中:

  • 问题内容: 我有一个用JS计算的值,希望将其作为输入表单的一部分传递给PHP脚本。我如何将JS值的JS值作为POST参数获取? 基本上,在提交时,我需要将var通过post传递到下一个脚本。 想到的第一个想法是创建一个不可见的输入表单,该表单中包含值并与该表单一起输入,这可能吗? 问题答案: 是的,您可以在JavaScript代码中使用和设置该隐藏字段的值,以便将其与其他表单数据一起发布。