在我开始之前,这个问题之前可能已被问过,但我要么不知道要输入什么来专门找到它,这是一个稍微具体的案例。
我正在开发一个具有许多动态关系的网站,其中一些在每个php文件的开头都有行require("global.php");
,它执行名称所指出的内容,例如css文件以及在根级别找到的任何其他内容。但问题是,在进入另一个目录时,该文件的链接已断开。
传统上我所做的(这是一个绝对愚蠢的初学者解决方法)是在名为$up
的require之前创建一个包含字符串'../'
的变量根据文件从根目录深入的目录数分别重复出现。因此,该行将显示为require($up."global.php");
。
我已经意识到这是多么愚蠢,并试图找到解决这个问题的方法。其中一个是使用变量$_SERVER['DOCUMENT_ROOT']
来打印出根目录,但其原因是100%无法工作是因为a)我在本地机器上开发网站#39;根'开发中的网站位于服务器的子目录中,并且b)它根据驱动器上的位置返回整个路径,从D:\开始,并以这种方式工作,我不是特别喜欢在开发网站时工作,如果可能的话,宁愿留在网络服务器的托管目录中。
因此,基于我所解释的,有一种简单的方法可以在短字符串中获取网站的根位置(无论项目是在subridectory还是Web服务器的真正根目录)这很容易附加到每个php文件中的每个文件引用的开头,无论它的目录级别如何?
谢谢! < 3
答案 0 :(得分:0)
假设您有以下目录:
/srv/website/index.php
/srv/website/lib/functions.php
然后你可以这样做:
define("MY_ROOT", $_SERVER['DOCUMENT_ROOT']);
并在相对的每个(包含)文件中使用它:
require (MY_ROOT . "lib/functions.php" );