如何从 PLESK Cron 作业中获取参数

How to get arguments from PLESK Cron jobs

我在 PLESK 12 中创建了一个 Cron Job/Scheduled 任务,我通过使用参数框传递参数 33 和 On。我正在努力在 cron 作业结束时的 PHP 文档中找到这些内容。

在 PHP 文档中,我尝试了很多东西,包括 $arg[0] 和 $argv[0]

$arg 作为未定义的变量返回,而 $argv[0] 没有错误,但也没有成功传递参数,因为尚未进行所需的更改。

我已经检查以确保 PHP 脚本正常工作,并且当参数被硬编码到程序中时它工作正常,但我希望它是动态的。

<?PHP
include_once('xxx/xxx/xxx/db.php');
include('xxx/xxx/xxx/xxx/db.php');
$query = "UPDATE SQLCommand SET argument1 = '$argv[1]' WHERE argument2= $argv[0]";
$result = mysqli_query($connection,$query);

任何人都可以解释为什么这些仍然没有通过参数。

谢谢

$argv[0] 始终包含脚本文件的名称,因为它传递给 PHP 二进制文件。 根据屏幕截图,$argv[1] 是“33”,$argv[2] 是 'On'。您可以轻松查看:

echo $argv[1];

或者您可以通过以下方式将所有参数列为数组:

var_dump($argv);

基本上,当通过 Plesk 安排时,以下任务会添加到 crontab:

/usr/bin/php5 -f '/test.php' -- '33' 'On'

如果test.php包含上述命令,其执行结果如下:

# cat /test.php
<?php
echo "The first argument is $argv[1]\n";
echo "Here the full list of arguments:\n";
var_dump($argv);
?>
# /usr/bin/php5 -f '/test.php' -- '33' 'On'
The first argument is 33
Here the full list of arguments:
array(3) {
  [0]=>
  string(6) "/test.php"
  [1]=>
  string(2) "33"
  [2]=>
  string(2) "On"
}