PHP每24小时执行一次代码

时间:2012-09-09 05:31:50

标签: php sql timestamp

我正在尝试创建一个每24小时执行一次的PHP代码。我正在使用的当前CMS支持这一点,并且它可以正常工作,而我想让它变得更复杂。

每天一小时,我想要一个代码来执行,这将在一小时内为我的用户提供特殊权限。

一旦小时结束,我希望它还原更改,取消权限。然后用户需要等到第二天,小时又回来了。

例如:

<?php

if (!defined('UBER') || !UBER)
{
    exit;
}

dbquery("UPDATE catalog_pages SET visible = '1' WHERE id='91'");
$core->Mus('update_catalogue');

?>

此代码每24小时执行一次,并且运行正常。它更新目录设置页面以使每个人都可以看到。我只是坚持如何让它在小时结束后消失。

让我们说小时是凌晨4点到凌晨5点。

如何使用PHP代码在5.00am之后使页面消失?

提前致谢。

2 个答案:

答案 0 :(得分:3)

if (date("G") == '4'){
//give
}elseif (date("G") == '5'){
//takeway
}

或在查询中

.. WHERE HOUR(NOW()) BETWEEN 4 AND 5

答案 1 :(得分:1)

实际上这很容易做到。当用户登录或尝试使用仅在特定时间授予的权限时,请运行检查以查看时间是否在这些小时内。如果您的CMS允许您拦截事件,请使用以下内容:

onUserAction(){
    if(isSpecialHour()){
        denyPermission()...
    }
    else{
        grantPermission()...
    }
}

当用户尝试执行需要权限的操作时,系统应检查是否在特定小时内,然后授予或拒绝权限。

单独使用PHP,不可能以特定间隔运行脚本。 PHP脚本在加载时运行,除非你有人在那个时间运行脚本(或使用类似cron之类的东西),否则无法完成。当然,您可以使用cron或simmilar来完成同样的事情。上面的方法可能是你最好的选择。