一种在php中动态包含路径的方法?

时间:2015-06-17 19:58:38

标签: php path

我使用此文件和文件夹构建了一个服务器:

index.php
|lib -> lib.php
|framework -> fw.php
|folderA -> index2.php

在lib.php中有一个带有require_once的functionA(),它从index2.php中正确调用“fw.php”:

functionA(){
    require_once "../framework/fw.php";
    //other stuff... 
}

如果从index.php调用它,则必须更改路径。 我真的需要一种方法来动态地包含路径,而无需在每个页面内设置特定的代码。

是否存在修复路径的方法?

我尝试使用__FILE __,dirname()......但没有满意的解决方案。

2 个答案:

答案 0 :(得分:3)

你可能不得不调整它以使其工作,具体取决于你的路径设置方式......但对于大多数标准设置,这将有效。

$basepath = substr($_SERVER['DOCUMENT_ROOT'], 0, strrpos($_SERVER['DOCUMENT_ROOT'], '/')). 
'/framework/';

require_once($basepath.'fw.php');

答案 1 :(得分:1)

如果使用php 5.3+,您可以使用魔术常量__DIR__

functionA(){
    require_once __DIR__."/../framework/fw.php";
    //other stuff... 
}

这将采用lib/lib.php的functionA的路径,即使lib.php包含在index.php中,也可以从那里开始。

以前的PHP版本: dirname(__FILE__)