如何使用exec()PHP发送变量

时间:2011-04-26 22:24:42

标签: php command-line

我正在尝试将php变量发送到函数,但以下都没有传递变量。

$vars='email=' . $_POST['email'] . '&password=' . $_POST['password'] . '&server=' . $_POST['server'];
$function = 'nohup php unsubscribefunction.php ' . escapeshellarg($vars);
exec($function); 
exec('nohup php unsubscribefunction.php ' . $vars);
exec('nohup php unsubscribefunction.php $vars ');


$vars='?email=' . $_POST['email'] . '&password=' . $_POST['password'] . '&server=' . $_POST['server'];
$function = 'nohup php unsubscribefunction.php' . $vars;
exec($function); 

以下是the php.net page对此

的说法
  

允许用户提供的数据时   传递给这个函数,使用   escapeshellarg()或escapeshellcmd()   确保用户无法欺骗   系统执行任意   命令。

但是,没有关于如何传递变量的示例,任何见解或示例都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

尝试阅读一些帮助here。基本上,您需要确保通过$argc / getopt()或其他方式使用命令行变量。

使用标志调用脚本,如下所示:php myscript.php -a foo -b bar -c baz 测试打印您的参数:

   <?php
           $arguments = getopt("a:b:c:");
           print_r($arguments);
    ?>
Array
(
    [a] => foo
    [b] => bar
    [c] => baz
)

答案 1 :(得分:1)

这不是你遇到的问题。你不能这样发送变量;您需要使用command line arguments来捕获要放入变量的值。