網絡的意圖PHP代碼我有PHP代碼,按地址$_SERVER['DOCUMENT_ROOT'].'/subdir/file.php';
從命令行運行
首先,requires其他PHP文件 - 這是包括物盡其正確的方法?很明顯,我不想使用像'../../subdir/file.php';
這樣的路徑,因爲移動文件會破壞它。
但另一個有趣的問題是,如果我通過命令行運行此文件,則不會創建$_SERVER
。我可以通過$_SERVER['DOCUMENT_ROOT'] = '.';
來僞造,但我很好奇,如果這是最佳做法。似乎不是。
編輯:很明顯,有很多方法來剝皮這隻貓,但我認爲最好的做法是定義一個負責include目錄的變量(或常量)。如:
define('INC_DIR', $_SERVER['DOCUMENT_ROOT'].'/../includes');
或
if (PHP_SAPI == 'cli') {
$_includes = '../includes';
} else {
$_includes = $_SERVER['DOCUMENT_ROOT'].'/../includes/');
}
並使用整個代碼前述變量或常數。