2012-09-09 87 views
3

我想創建一個每24小時執行一次的PHP代碼。我正在使用的當前CMS支持此功能,並且它可以正常工作,而我想使它更復雜一些。PHP每24小時執行一次代碼

對於一個小時,我每天都需要一個代碼來執行,這將在這一小時內爲我的用戶提供特殊的權限。

一旦小時結束,我希望它恢復所做的更改,取消權限。然後用戶需要等到第二天,即小時回來。

例如:

<?php 

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

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

?> 

此代碼執行每24小時一次,並且工作正常。它更新目錄設置頁面以供所有人看到。我只是停留在如何在一小時後消失。

可以說時間是早上4點到上午5點。

如何讓頁面在5.00am之後使用PHP代碼消失?

在此先感謝。

+0

您可以更好地編寫「cron」腳本(Linux)或「計劃任務」(Windows)。 – paulsm4

+0

我目前使用的CMS使用cron腳本。從數據庫中,您可以選擇腳本執行的頻率。 – zuc0001

回答

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

或查詢

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

感謝您的支持。很簡單,但是,有沒有辦法使用時間戳選擇時間?我在PHP方面很新。 – zuc0001

+0

我應該從我的數據庫中提到,您需要設置代碼的執行頻率。我現在每24小時設定一次。 我也希望能夠進行「小時」更改。例如:凌晨4點,第二天早上6點。 – zuc0001

+0

是的,SQL版本是我正在尋找的。但是,不是4到5之間,你可以像我提到的那樣做一個「輪換」,有一天凌晨4點,第二天早上6點? – zuc0001

1

這其實是很容易的事情。當用戶登錄或嘗試使用僅在特定時間授予的權限時,請運行檢查以查看時間是否在這些小時內。如果您的CMS允許您攔截事件,使用這樣的:

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

當用戶試圖做一些事情,需要一個許可,系統應檢查其是否是特殊小時內,然後授予或拒絕許可。

僅使用PHP,不可能讓腳本以特定間隔運行。 PHP腳本在加載時運行,除非有人在該時間運行腳本(或使用類似cron的腳本),否則無法完成。當然,你可以使用cron或simmilar來完成同樣的事情。上面的方法可能是你最好的選擇。

+0

如果您需要更改「特權」小時,只需將開始時間(時間戳)存儲在數據庫中,並讓isSpecialHour()函數查看它是否在允許的小時內。您可以讓isSpecialHour()檢查您想要的位置,以便您可以根據自己的意願更改授予權限的時間。 – alecwhardy

+0

啊,我明白你的意思了。但是,隨着時間的變化,我希望它是自動的,以便每個時區都有能夠使用特殊權限的公平「機會」。 – zuc0001

+0

再次這是沒有問題的。只需讓isSpecialHour()函數檢查試圖訪問權限的用戶的時區即可 – alecwhardy

相關問題