服务器文档根是否可靠


can server document root be relied upon

我为我的网站写了差不多9年前的PHP代码。我有一个名为common.php的配置文件。我网站上的每个页面都需要这个页面来访问网站的常量、类和变量。

我在本地机器上开发,然后将文件上传到一个实时站点。我在页面上使用的调用common.php的代码是:

$main = ($_SERVER['HTTP_HOST'] == 'localhost')? "E:'-=Web=-'-=Sites=-'mysite'main'common.php" :"/home/mysite/public_html/main/common.php";
require_once($main);

这工作得很好,从来没有给我任何问题。

但是,我想我可以直接使用:

require_once($_SERVER["DOCUMENT_ROOT"]."/main/common.php")

这将使我的代码更紧凑,这也意味着我不必有我的开发网站文件总是在E://

所以我的问题是,使用$_SERVER["DOCUMENT_ROOT"]是好的做法吗?

如果希望在每个页面上调用配置文件,大多数开发人员会这样做吗?

最常见和最可靠的方法是定义一个常量,该常量包含代码的路径,该路径可以在index.php文件中,也可以在同一目录中包含的config.php文件中,或者是已知的相对路径和引用:

if (!defined('APP_DIR')) define('APP_DIR', __DIR__); // set the app directory to that of the currently executing file

其他文件的require行变成了

require_once(APP_DIR . '/main/common.php');

现在,您可以保证该常量将包含您所期望的内容。前提是你把它修好了。div;)