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

标签 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说的是这个

When allowing user-supplied data to be passed to this function, use escapeshellarg() or escapeshellcmd() to ensure that users cannot trick the system into executing arbitrary commands.

但是,没有关于如何传递变量的示例,任何见解或示例将不胜感激。

最佳答案

尝试阅读一些帮助 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
)

关于php - 如何使用 exec() PHP 发送变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797199/

相关文章:

php - 使用 no-wrap 保存 textarea 会导致 php 出现奇怪的字符

php - 在 PHP/MySQL 查询中如何以及在何处编写 if 语句

shell - 第三方Windows命令行程序?

linux - 确认和否定前瞻给出错误

命令行上的 java 进度条 [线程]

windows - 如何添加C :\windows\system32 to path on Windows 8?

php - 在 mysql 上加入和过滤来自多个表的数据的快速方法

php - 统计mysql中某一列的不同字符串

linux - 在 .bashrc 中包含其他文件

php - 如何在一个表中显示多行,而在另一个表中的一行显示为单行