2012-01-08 49 views
0

我試圖根據它是什麼日期運行不同的腳本,但我不是100%確定如何去做,基本上我想要做的是: cron腳本每天運行並調用服務器上的PHP文件,在PHP文件,我需要把這樣的:everyday.php每天根據日期調用不同的腳本

運行everymonday.php每星期一

運行firstmondayofthemonth

運行。 php每個月的第一個星期一

所以我需要檢查日期是否與3中的每一個相同,然後運行該腳本,但我不知道在php中哪個命令最適合這個?

回答

1

好吧,如果你有PHP來做到這一點(替代辦法是隻創建3個cronjobs和配置的cron),那麼這可能會給你一個想法:

$weekday = date('D'); 
$dayOfMonth = date('d'); 
run everyday.php; 
if ($weekday == 'Mon') 
{ 
    run everymonday.php 
    if ($dayOfMonth <=7) 
    run firstmondayofthemonth.php; 
} 

您需要修改代碼當然,例如用適合您的環境的東西替換運行的東西。可能包括,執行或HTTP請求,...

+0

如何在每個星期一的時候將另一個腳本放在哪裏運行?您是否僅回顯腳本的url /名稱? – 2012-01-08 20:56:45

+0

取決於:您是否知道腳本的內容(或者您是否至少可以做出一些假設?),是本地服務器上的目標腳本,並且您是否有權直接訪問該文件並且限制您的環境(你可以調用exec(),你是否在安全模式下運行,...)。我建議你讓這個問題成爲一個單獨的問題。 – yankee 2012-01-08 21:12:23

+0

@IainSimpson:請注意,我將dayOfMonth <= 6更改爲dayOfMonth <= 7。在想了一會之後,剛剛發生在我身上。 – yankee 2012-01-08 21:56:37

0

我建議乾脆把這個到cron本身,因爲你可以指定在一週某些腳本運行,但如果你想這樣做在PHP然後用選項「d」來檢查什麼日子使用date function也許天它是並且有一個switch case語句。

例如:

0 0 * * 1 php runatmidnightonmonday.php 
0 0 * * 6 php runatmidnightonsaturday.php 
0 0 * * 0 php runatmidnightonsunday.php 
+0

不同的人希望在不同的時間收到價格,所以每個PHP文件只運行在他們的個人資料中打勾選項的客戶端,這就是爲什麼即時通訊用php而不是cron。 – 2012-01-08 20:49:10