如何在Web应用程序中的特定日期执行函数?

时间:2010-07-09 18:55:32

标签: php codeigniter date auto-update

我正在使用php和codeigniter框架的项目。我想每3个月在数据库中进行一次更改。问题是我不知道如何用PHP做到这一点。我可以在用户访问页面时激活一个功能,但我希望它在某个日期自行执行。

5 个答案:

答案 0 :(得分:4)

您可以使用PHP编写脚本代码,并使用CRON运行它(假设您在UNIX / LINUX环境中托管应用程序)。

Here是一个WebSite,解释了如何使用CRON自动执行PHP。

答案 1 :(得分:1)

您需要设置cron作业(unix)或scheduled task(窗口)来为您执行此操作。

依靠用户点击页面来执行计划任务是非常糟糕的做法。

答案 2 :(得分:0)

如果您无权访问cron,您可以在主页上设置一个代码来检查每个访问者的日期,如果当前日期符合模数条件,则执行必要的任务。

答案 3 :(得分:0)

设置一个cronjob并制作你自己的bootstrap文件(你将调用这个文件并将类和方法作为命令行参数传递。

这是一种快速而肮脏的方式(完全未经测试)

// usage: php cmd.php users/cron
if (php_sapi_name() != 'cli' || count($argv) != 2) {
    exit('Not enough params');
}

// Fake REQUEST_URI
$_SERVER['REQUEST_URI']  =  $argv[1];

// include the index bootstrap file
require 'index.php';

将文件命名为cmd.php并设置一个每月运行的cron作业。

用法:

cd root/to/directory && php cmd.php users/prune

这只是一个未经测试的示例 - 但应该指出正确的方向:)

答案 4 :(得分:-1)

如果你有一个抓取器命中的索引页面,你实际上不必使用cron,看看你的服务器日志它没有停止。例如,如果您需要每月执行一次任务,请在下个月保存在文本文件中,当您获得匹配时运行您的任务。将此放在一个页面中,您知道抓取工具一直在点击,当月份发生变化时,它会触发您的脚本。