我为我的网站写了差不多9年前的PHP代码。我有一个名为common.php
的配置文件。我网站上的每个页面都需要这个页面来访问网站的常量、类和变量。
我在本地机器上开发,然后将文件上传到一个实时站点。我在页面上使用的调用common.php
的代码是:
$main = ($_SERVER['HTTP_HOST'] == 'localhost')? "E:-=Web=--=Sites=-mysitemaincommon.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;)