这是我的情况。我有一个 config.php 文件,我希望在所有文件夹之间共享。它位于我的 root:includes / config.php 。
我在 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中定义了这些环境和所有设置。如果我正在制作,那么第二行将完美无缺。但是在我的开发和localhost环境中..文件不在根目录中,它们位于子文件夹中..所以唯一可行的方法是:
require_once $_SERVER['DOCUMENT_ROOT'] . "/sub_folder/includes/config.php";
好吧,我的config.php文件中有一个PATH常量,具体取决于环境,但我无法访问它,因为我试图包含该文件!
所以我不确定最好的方法来解决这个问题。我希望这是有道理的。
感谢任何帮助!
答案 0 :(得分:3)
如果您将配置文件配置为.ini文件而不是php。你有一个名为
的函数parse_ini_file($filePath);
在ini文件中,您可以定义“生产”,“开发”,“暂存”环境。
这是推进可扩展性的更好方法。
在此Wiki页面中更好地解释了ini文件语法
http://en.wikipedia.org/wiki/INI_file
如果您想使用php文件,可以在config.php中定义您的环境,并在所有常量的条件下进行换行。
对于您可以使用的目录结构
realpath(dirname(__FILE__))
优于
$_SERVER['DOCUMENT_ROOT']
希望这会有所帮助..
KARTHIK