Php 如何将根路径与require一起使用?

Php 如何将根路径与require一起使用?,php,path,require,Php,Path,Require,我在一个站点中有一个私有部分,其文件夹结构如下 www.site.com/privatePath/secretFolder/login.php 然后是一些子文件夹,例如 www.site.com/privatePath/secretFolder/grandmasRecipes/applePie.php login.php旁边有一个共享的functions.php www.site.com/privatePath/secretFolder/functions.php(创建$connection

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

www.site.com/privatePath/secretFolder/login.php
然后是一些子文件夹,例如

www.site.com/privatePath/secretFolder/grandmasRecipes/applePie.php
login.php旁边有一个共享的functions.php

www.site.com/privatePath/secretFolder/functions.php
(创建$connection,mysql等等)

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

我想澄清一下:

因为同一个文件可以在不同的文件夹中调用,所以我希望它不是从文件所在的位置调用functions.php文件,而是相对于根文件夹调用。因此,没有相关的../etc参考

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

我的建议是,永远不要依赖任何外部路径配置(例如
DOCUMENT\u ROOT
)。相反,请使用相对于当前脚本的路径

login.php

require_once __DIR__ . '/functions.php';
require_once __DIR__ . '/../functions.php';
来自
grandmasRecipes/applePie.php

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


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

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

include_path="/home/cpanelLogIn/public_html/:."
然后你可以简单地使用

require_once 'privatePath/secretFolder/functions.php';
anywhere

替代解决方案:

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

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

谢谢Phil,不幸的是,我不能保证生成的文件将从哪个文件夹调用。所以我需要一个基于根的解决方案。@Gamemorize我完全不知道这意味着什么,因为同一个文件可以在不同的文件夹中调用,所以我希望它调用functions.php文件,而不是从文件所在的位置,而是与根相关的位置folder@Gamemorize我已经添加了另一个选项请在您的答案中添加文档\u ROOT将工作,但你有保留,我将删除它从我的问题动态生成的PHP文件听起来像一个非常糟糕的idea@Phil完全正确。它的存在是因为菜单和子菜单以及页面链接是通过文件目录创建的。问题是每个页面都需要创建会话。尽管我认为依赖
DOCUMENT\u ROOT
是一个坏主意(对于初学者来说,如果HTTP服务器不设置属性,它将不起作用),但我看不出代码不起作用的原因。你绝对确定你没有
需要'functions.php'吗
在第4行的
applePie.php
脚本中,Phil检查了1000次拼写,停止“求解”询问stackoverflow,返回到我的IDE页面,我看到我一直在编辑一份旧副本Arrggggghhh Sorryyyy MAN,对不起stackoverflow,对不起,谢谢Phil。人为错误,很抱歉