使用cronjob访问PHP方法

时间:2012-02-22 22:35:41

标签: php linux cron

有没有办法让Linux从文件中运行特定方法?

目前我有这个cronjob:

10 * * * * /usr/bin/php /path/to/script.php

但是我希望我的script.php可以在不同的时间保存几个函数:

public function ten_mins()
{
   $this->upkeep_function_1();
   $this->upkeep_function_2();
}

public function daily()
{
   $this->upkeen_function_3();
}

我想避免使用wget或cURL,因为我想避免不必要的TCP设置。

我能做些什么吗?

4 个答案:

答案 0 :(得分:4)

您可以使用getopt()通过命令行传递参数,并在脚本中对其进行操作:

<?php
$options = getopt("f:hp:");
var_dump($options);

使用php script.php -fvalue -h运行上述脚本将输出:

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

答案 1 :(得分:2)

10 * * * * /usr/bin/php /path/to/script.php ten_mins

PHP文件......

public function ten_mins()
{
   $this->upkeep_function_1();
   $this->upkeep_function_2();
}

public function daily()
{
   $this->upkeen_function_3();
}

$method = end($_SERVER['argv']);
call_user_func($method);

实际上,您的初始代码似乎缺少部分,您也可以调用这样的方法:

call_user_func(array($object, $method));

答案 2 :(得分:1)

如何获取当前日期和时间,然后根据它调用相应的函数,可能使用switch命令?

答案 3 :(得分:1)

将脚本分成几个文件或使用commandline-option -r内联执行一些代码。这是link