这是我的情况。 我有一个 config.php 文件,我想在我的所有文件夹之间共享。 它位于我的根目录中:include/config.php。
我在我的管理员文件夹中,正在尝试包含该配置文件。
// 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";
好吧,根据环境的不同,我的config.php文件中有一个PATH常量,但是我无法访问它,因为我正在尝试包含该文件!
所以我不确定解决这个问题的最佳方法。我希望这是有道理的。
任何帮助不胜感激!
如果你把配置文件作为.ini文件而不是php。你有一个名为
parse_ini_file($filePath);
在INI文件中,您可以定义"生产","开发","暂存"环境。
这是实现可伸缩性的更好方法。
ini 文件语法在此 wiki 页面中得到了更好的解释
http://en.wikipedia.org/wiki/INI_file
如果你想使用 php 文件,你可以在 config 中定义你的环境.php并在所有常量上包装 if 条件。
对于,您可以使用的目录结构
realpath(dirname(__FILE__))
哪个比
$_SERVER['DOCUMENT_ROOT']
希望这有帮助..
卡尔西克