定义PHP-include的绝对路径

时间:2018-04-06 13:43:43

标签: php

我目前正在使用此方法为我的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'; ?>。但这很痛苦,因为如果我将我的网站移动到另一台服务器,我必须再次更改绝对路径。

有什么解决方案可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

因此,我建议使用__DIR__常量或dirname(__FILE__),这适用于旧版PHP,正如Justinas在下面的评论中所述。

__DIR__实质上定义了正在处理的文件当前所在的目录。因此,如果您的脚本位于同一目录中,您可以输入如下内容:

index.php is in __DIR__

如果sub1.test.com需要在根目录中包含一些内容,并且你在子域名,必需品等中......你会这样做:

include_once(__DIR__ . "/../../../common.php")

这会将3个目录遍历到根目录,并包含该文件。