在 crontab 中执行 php 函数

Execution of a php function in crontab

我想在 crontab 中执行一个 php 函数,就像在 URL 中一样:

yourdomain.com/yourphp.php?function=pwdTimeout

我试过类似的方法,但没有用

* * * * * /var/..../webpage/yourphp.php?function=pwdTimeout

如何在 crontab 的帮助下执行 php 函数。非常感谢您的帮助。

我的 php- 文件看起来像:

<?php 
define ('database', $database); // the variables are defined and tested 
define ('host', $host); 
define ('db_username', $db_username); 
define ('db_password', $db_password); 
if(isset($_GET['function'])){ 
$view = new functions(); 
$view->$_GET['function]();
}else{ 
echo 'Function not found'
} 

class functions{ 
function getUsername(){....} 
function setPassword(){...} 
function pwdTimeout(){...} 
} 
?>

我应该在哪里修改我的代码?谢谢:)

没有 GET 参数:

***** /bin/php /var/..../webpage/yourphp.php

使用 GET 参数,但需要网络服务器 运行 /var/..../webpage/ as DocumentRoot

***** /bin/wget -O /dev/null -q http://127.0.0.1/yourphp.php?function=pwdTimeout

使用您的函数名称作为参数在 CRON 选项卡中调用您的脚本:

* * * * * /path/to/php /var/www/webpage/yourphp.php pwdTimeout

并使用 $argv:

检索参数的值
$functionName = $argv[1]; // outputs pwdTimeout ([0] is the filename)

请注意,您也可以为您的论点使用键 ($ php yourphp.php function=pwdTimeout),但您需要 explode() 它,如下所示:

$parameters = explode('=', $argv[1]); // outputs array('function' => 'pwdTimeout')

最后,您可以通过以下调用使用 getopt()

* * * * * /path/to/php /var/www/webpage/yourphp.php -f pwdTimeout

并像这样使用它:

$parameters = getopt('f:'); // outputs array('f' => 'pwdTimeout')

你误会了,cron 作业是一个在给定时间运行脚本的调度程序。所以你需要将代码放在一个文件中并在 cronjob 中配置该路径。