3

这是我的情况。我有一个config.php文件,我想在我的所有文件夹之间共享。它位于我的根目录中:includes/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 常量,但我无法访问它,因为我试图包含该文件!

所以我不确定解决这个问题的最佳方法。我希望这是有道理的。

任何帮助表示赞赏!

4

1 回答 1

3

如果您将配置文件设置为 .ini 文件而不是 php。你有一个函数叫做

parse_ini_file($filePath);

在 ini 文件中,您可以定义“生产”、“开发”、“暂存”环境。

这是实现可扩展性的更好方法。

这个 wiki 页面更好地解释了 ini 文件语法

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

如果您想使用 php 文件,请在 config.php 中定义您的环境,并在所有常量上包装 if 条件。

对于,您可以使用的目录结构

realpath(dirname(__FILE__))

这比

$_SERVER['DOCUMENT_ROOT']

希望这可以帮助..

卡尔提克

于 2012-06-27T13:40:34.593 回答