如何使用require的根路径?

时间:2016-10-13 23:21:43

标签: php path require

我在网站中有一个私有部分,其文件夹结构如此

"Hello ld!"
"Hello World!"

然后是一些子文件夹,例如

www.site.com/privatePath/secretFolder/login.php

在login.php旁边有一个共享的functions.php

www.site.com/privatePath/secretFolder/grandmasRecipes/applePie.php (创建$ connection,mysql blah blah)

我有各种子文件夹和文件,我希望连接到functions.php,其中一些是动态创建的,因此解决方案应该可以在任何文件/文件夹位置工作。

只是为了澄清:

因为可以在不同的文件夹中调用相同的文件,我希望它调用的函数不是文件所在的functions.php文件,而是与根文件夹相关。所以没有亲戚../ etc reference

我的问题: 如何从我的网站中的任何文件访问所需的php文件?

2 个答案:

答案 0 :(得分:4)

我的建议从不依赖于任何外部路径配置(例如DOCUMENT_ROOT)。而是使用相对于当前脚本的路径......

来自login.php

require_once __DIR__ . '/functions.php';

来自grandmasRecipes/applePie.php

require_once __DIR__ . '/../functions.php';

请参阅http://php.net/manual/language.constants.predefined.php#constant.dir

另一种方法是为当前环境设置include_path。您可以在文档根目录中的.user.ini文件中执行此操作

; /home/cpanelLogIn/public_html/.user.ini

include_path="/home/cpanelLogIn/public_html/:."

然后你可以简单地使用

require_once 'privatePath/secretFolder/functions.php';

的任何地方

答案 1 :(得分:0)

替代解决方案:

require ( $_SERVER['DOCUMENT_ROOT'] . "/privatePath/secretFolder/functions.php");

将从站点中的任何页面访问functions.php文件。