2012-06-27 127 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