包含来自另一个目录的文件

时间:2014-02-18 03:29:53

标签: php file include

目前我正在尝试include来自另一个目录的PHP文件。

public_html/a/class/test.php <-- from this file i would to include a file from
public_html/b/common.php <-- wanted to include this file

不确定我应该做什么因为我尝试过使用

dirname(__FILE__) 

这样我就会继续为public_html/a/返回。

我尝试过这样的事情

 dirname(__FILE__).'/../b/common.php'

但它无法帮助我获取文件。

3 个答案:

答案 0 :(得分:3)

您可以简单地继续向上移动目录树,直到您拥有共同的祖先:

require dirname(dirname(__DIR__)) . '/b/common.php';

魔法常数__DIR__等于dirname(__FILE__),并在5.3中引入。每次使用dirname()都会返回一个目录,即:

dirname('public_html/a/class'); // public_html/a
dirname('public_html/a'); // public_html

顺便说一句,像PhpStorm这样的编辑也理解这种相对路径的使用。

答案 1 :(得分:0)

include('../../b/common.php');

将包含您的文件,确保两个目录都与用户具有相同的用户组。

答案 2 :(得分:0)

首先,我建议您为basepath定义一个变量,并在相关文件中包含该定义的变量。

// This should be on any root directory file
define("PR_BASEPATH", dirname(__FILE__));

根据您的实施,假设您在

public_html/a/class/test.php

dirname(__FILE__)返回根据class文件始终返回目录test.php的当前文件的目录名。

并且您希望包含位于其他目录public_html/b/common.php上的/b。所以你必须先获取文档根目录。

include $_SERVER['DOCUMENT_ROOT'] . "/b/common.php";

查看$_SERVER['DOCUMENT_ROOT']