我必須完成一個使用php cronjob的舊項目。內的cronjob我要檢查一個變量這樣PHP cronjob變量
defined('_CRONJOB') or die;
這個常數可以採取不同的值,以指示工作要做:
switch(_CRONJOB){
//...more code
}
調用的cronjob時,我怎樣才能設置此變量。提前致謝。
我必須完成一個使用php cronjob的舊項目。內的cronjob我要檢查一個變量這樣PHP cronjob變量
defined('_CRONJOB') or die;
這個常數可以採取不同的值,以指示工作要做:
switch(_CRONJOB){
//...more code
}
調用的cronjob時,我怎樣才能設置此變量。提前致謝。
既然你」將使用cron來啓動您的腳本,您可以使用CLI參數並將一些值傳遞給您的腳本。爲了處理您的參數,你可以只使用簡單的方法,如:
define('_CRONJOB', $_SERVER['argv'][1]); //equal to 1-st parameter
在這種情況下推出的將是這樣的:
/path/to/bin/php /path/to/script.php foo
而且你_CRONJOB
將等於foo
另一種更先進的方法是使用getopt()並抓住命名參數。這將更具可讀性,並且您將不能依賴參數順序(即它將首先完成)。我建議你使用這種方式。
取決於您的cronjob運行方式,最可能的答案是或$_SERVER['argv']
。
你的腳本將指向/path/to/cron/script/index.php var1 var2 var3
再次這個問題是非常依賴於服務器的設置,但是這給了一槍
編輯: 更新到正確的變量語法
啊是的,這是一個空間。這是對的,我知道$ _GET語法似乎是錯誤的 –
那麼,你不能在CLI模式下「傳遞」類似HTTP-GET URI的東西,因爲這樣的調用將被視爲文件名 –