我目前正在使用此方法为我的HTML模板包含某些部分:
<?php include $_SERVER['DOCUMENT_ROOT'] . "/common.php"; ?>
。
到目前为止我的工作正常,但只有一个问题。我的主域(在本例中称为test.com)附加到根文件夹。但我的子域名附加到另一个文件夹。所以它看起来像这样:
test.com | /var/www/Root Folder
sub1.test.com | /var/www/Root Folder/Subdomains/Essentials/Sub1
这意味着$_SERVER['DOCUMENT_ROOT']
无法正常工作,因为根虚拟已更改。我知道您可以使用:<?php include_once '/var/www/Root Folder/common.php'; ?>
。但这很痛苦,因为如果我将我的网站移动到另一台服务器,我必须再次更改绝对路径。
有什么解决方案可以解决这个问题吗?
答案 0 :(得分:0)
因此,我建议使用__DIR__
常量或dirname(__FILE__)
,这适用于旧版PHP,正如Justinas在下面的评论中所述。
__DIR__
实质上定义了正在处理的文件当前所在的目录。因此,如果您的脚本位于同一目录中,您可以输入如下内容:
index.php is in __DIR__
如果sub1.test.com需要在根目录中包含一些内容,并且你在子域名,必需品等中......你会这样做:
include_once(__DIR__ . "/../../../common.php")
这会将3个目录遍历到根目录,并包含该文件。