目前我正在尝试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'
但它无法帮助我获取文件。
答案 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";