0
在我的web應用程序,我有以下常數:PHP不斷CLI/CGI
//set global path if not yet set
if(!defined('FILE_ROOT_PATH')){
define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
}
因此代碼是可移植的,我可以包括/使用絕對路徑需要。
現在有一些PHP文件必須可以從CLI和CGI執行,當然$ _SERVER不能從CLI獲得。
所以我所做的就是將其更改爲這個代碼在與CLI和CGI執行這些特殊文件:
//set global path if not yet set and set it via dirname for CLI
if(!defined('FILE_ROOT_PATH') && strlen($_SERVER['DOCUMENT_ROOT'])){
define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
}else{
define('FILE_ROOT_PATH', dirname(dirname(__FILE__)));
}
所以CGI將執行第一個「定義」和CLI第二。
這樣做是否安全?當在CLI上執行時,常量不會被「覆蓋」爲CGI,對吧?謝謝你的想法。
謝謝!不幸的是,另一部分不起作用,我會在上面追加...... –
好的,它的工作原理。謝謝。 –