我必须完成一个使用php cronjob的旧项目。在cronjob中我必须检查这样的变量
defined('_CRONJOB') or die;
此常量可以使用不同的值来指示要执行的作业:
switch(_CRONJOB){
//...more code
}
如何在调用cronjob时设置此变量。提前谢谢。
答案 0 :(得分:1)
由于您将使用cron启动脚本,因此您可以使用CLI参数并将一些值传递到脚本中。要处理您的参数,您可以使用简单的方法,例如:
define('_CRONJOB', $_SERVER['argv'][1]); //equal to 1-st parameter
在这种情况下,启动将如下:
/path/to/bin/php /path/to/script.php foo
您的_CRONJOB
将等于foo
替代和更高级的方法是使用getopt()并获取命名参数。这将更具可读性,您将无法依赖参数顺序(即它将首先完全准确)。我建议你这样使用。
答案 1 :(得分:0)
取决于您的cronjobs的运行方式,最可能的答案是$argv
或$_SERVER['argv']
。
您的脚本将指向/path/to/cron/script/index.php var1 var2 var3
这个问题可能非常依赖于您的服务器设置,但请试一试
编辑: 已更新以更正变量语法