【发布时间】:2014-02-06 07:33:47
【问题描述】:
我必须完成一个使用 php cronjob 的旧项目。在 cronjob 中,我必须检查这样的变量
defined('_CRONJOB') or die;
这个常数可以取不同的值来表示要执行的工作:
switch(_CRONJOB){
//...more code
}
调用 cronjob 时如何设置此变量。提前致谢。
【问题讨论】:
标签: php variables cron constants
我必须完成一个使用 php cronjob 的旧项目。在 cronjob 中,我必须检查这样的变量
defined('_CRONJOB') or die;
这个常数可以取不同的值来表示要执行的工作:
switch(_CRONJOB){
//...more code
}
调用 cronjob 时如何设置此变量。提前致谢。
【问题讨论】:
标签: php variables cron constants
由于您将使用 cron 来启动您的脚本,因此您可以使用 CLI 参数并将一些值传递给您的脚本。要处理您的参数,您可以使用简单的方法,例如:
define('_CRONJOB', $_SERVER['argv'][1]); //equal to 1-st parameter
在这种情况下,启动将类似于:
/path/to/bin/php /path/to/script.php foo
您的_CRONJOB 将等于foo
另一种更高级的方法是使用getopt() 并获取命名参数。这将更具可读性,并且您将能够不依赖参数顺序(即它将是第一个)。我建议你使用这种方式。
【讨论】:
根据您的 cronjobs 的运行方式,最可能的答案是 $argv 或 $_SERVER['argv']。
您的脚本将指向/path/to/cron/script/index.php var1 var2 var3
同样,这个问题可能非常依赖于您的服务器设置,但请试一试
编辑: 更新以更正变量语法
【讨论】: