【问题标题】:PHP cronjob variablesPHP cronjob 变量
【发布时间】:2014-02-06 07:33:47
【问题描述】:

我必须完成一个使用 php cronjob 的旧项目。在 cronjob 中,我必须检查这样的变量

defined('_CRONJOB') or die;

这个常数可以取不同的值来表示要执行的工作:

switch(_CRONJOB){ 
//...more code
}

调用 cronjob 时如何设置此变量。提前致谢。

【问题讨论】:

    标签: php variables cron constants


    【解决方案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() 并获取命名参数。这将更具可读性,并且您将能够不依赖参数顺序(即它将是第一个)。我建议你使用这种方式。

    【讨论】:

    • 啊,是的,这是一个空格。没错,我知道 $_GET 语法似乎是错误的
    • 好吧,你不能在 CLI 模式下“传递”诸如 HTTP-GET uri 之类的东西,因为这样的调用将被视为文件名
    【解决方案2】:

    根据您的 cronjobs 的运行方式,最可能的答案是 $argv$_SERVER['argv']

    您的脚本将指向/path/to/cron/script/index.php var1 var2 var3

    同样,这个问题可能非常依赖于您的服务器设置,但请试一试

    编辑: 更新以更正变量语法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 2020-04-12
      • 1970-01-01
      • 2012-11-16
      • 2018-08-14
      相关资源
      最近更新 更多