2012-06-27 128 views
3

這是我的情況。我有一個config.php文件,我想分享我的所有文件夾。它位於我的根目錄下:includes/config.phpPHP包含文件2目錄返回

我在我的admin文件夾,我試圖包含該配置文件。

// Does not work 
require_once "../../includes/config.php"; 

// This will kind-of-work.. see below 
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/config.php"; 

第二行的問題是我有3個不同的環境。本地主機,開發和生產。

我定義了這些環境和config.php中的所有設置。如果我正在製作,那麼第二行將會完美。但在我的發展和本地主機環境。該文件不在根目錄下,他們是在一個子文件夾..所以對於工作的唯一辦法是:

require_once $_SERVER['DOCUMENT_ROOT'] . "/sub_folder/includes/config.php"; 

嗯,我有一個恆定的PATH在我的config.php文件取決於環境,但我無法訪問它,因爲我試圖包含該文件!

所以我不確定最好的方法來處理這個..我希望這是有道理的。

任何幫助表示讚賞!

+0

你的軟件應該使用類似的目錄結構任何狀況之下。如果我將我的/ usr/bin目錄移動到/ usr/lalala/bin,我不知道爲什麼我的程序不會啓動。 – feeela

回答

3

如果您將配置文件設置爲.ini文件而不是php。您有一個名爲

parse_ini_file($filePath); 

在ini文件,您可以定義「生產」,「發展」,「分期」的環境功能。

這是提高可伸縮性的更好方法。

ini文件語法在此Wiki網頁

http://en.wikipedia.org/wiki/INI_file

更好地解釋如果你想使用PHP文件你可以在config.php中定義的環境和條件,如果包裝上所有的常數。

對於,目錄結構,你可以使用

realpath(dirname(__FILE__)) 

這是優於

$_SERVER['DOCUMENT_ROOT'] 

希望這有助於..

KARTHIK

+0

realpath(__ DIR __)等同於實際路徑(dirname(__ FILE __)) – TarranJones