我在PLESK 12中创建了一个Cron作业/计划任务,我通过使用参数框传递参数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);
任何人都可以解释为什么这些仍未通过论证。
由于
答案 0 :(得分:3)
$argv[0]
始终包含脚本文件的名称,因为它传递给PHP二进制文件。
根据屏幕截图,$argv[1]
是&#33; 33&#39;而$argv[2]
是&#39; On&#39;。您可以轻松查看:
echo $argv[1];
或者您可以通过以下方式将所有参数列为数组:
var_dump($argv);
基本上,当通过Plesk安排时,以下任务被添加到crontab:
/usr/bin/php5 -f '/test.php' -- '33' 'On'
如果test.php
包含上述命令,则其结果为&#39}。执行将如下:
# 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"
}