从不同文件夹获取根路径目录时遇到问题

时间:2018-10-10 03:31:02

标签: php redirect root

我正在尝试为不同文件夹中的不同文件连接某个头文件。问题是,例如在/ backend中包含相同文件时,将很容易直接调用它(因为索引也在/ backend中),但是从backend / pages调用它时,它不再调用链接结构,从而导致死链接。

我尝试使用../和不同的头文件进行所有可能的操作,但这是不行的。试图找到下面的URL这样的解决方案的确很接近,但我似乎无法弄清楚。

Root path variable in a PHP project

例如,在包含或要求中自动包含根的最佳方法是什么。

2 个答案:

答案 0 :(得分:1)

如果您正在使用一个前端控制器(例如index.php文件)来启动并执行整个应用程序,则可以在其中设置一个常量,例如define('APP_ROOT', __DIR__);,并将其根设置为您的前控制器。

您可以通过执行APP_ROOT . "/includes/header.php"

从任何地方访问头文件

如果不使用前端控制器,则可以在每个文件中进行设置。因此,对于后端/页面,它类似于./../includes/header.php。或更妙的是,使用$_SERVER['DOCUMENT_ROOT']来获取Web服务器vhosts配置所提供的应用程序的根目录。 (NGINX的Apache最有可能)

$_SERVER['DOCUMENT_ROOT'] . "/app/backend/includes/header.php"

答案 1 :(得分:0)

  

例如,在包含或要求中自动包含根的最佳方法是什么。

我不知道有任何方法可以做到这一点,而无需修改PHP本身并从源代码重新编译,但是我可能是错的。您的根路径将始终存储在$_SERVER['DOCUMENT_ROOT']中。

我认为您可能想研究的是autoloading,更具体地说是PSR-4composer