fru*_*ose 0 php directory include
我有一个PHP应用程序,我试图包括,但它导致问题,因为我试图从子目录中包含其文件.例如,这是我正在尝试使用的目录结构(或多或少):
/site
/scripts
/local
some_script.php
lib_file_a.php
lib_file_b.php
lib_load.php
Run Code Online (Sandbox Code Playgroud)
lib_load.php有include文件命令lib_file_a.php和lib_file_b.php(相对路径).
我想做到的是,包括lib_load.php从some_script.php,但有一个与我包括方式有问题lib_load.php.起初我试过了require('../../../lib_load.php');.
正如您所料,我看到了错误,"无法打开所需的'C:\ xampp\htdocs\site\scripts\local\lib_file_a.php'".如您所见,PHP正在尝试包含一个不存在的文件.我找到了一个Stack Overflow帖子告诉我使用绝对路径(链接),但这没有帮助.我接下来尝试了这段代码:
require(realpath(dirname(__FILE__) . '../../../' . 'lib_load.php'));
Run Code Online (Sandbox Code Playgroud)
但是,这一次,同样的错误又回来了.我究竟做错了什么?
编辑:我意识到问题实际上是在库加载器中,结果是基于绝对路径而不是相对路径包含文件.(我应该仔细阅读.)我通过更改库使用的路径解决了这个问题.如果mod看到此请求,则应关闭此问题.
包括lib加载
require $_SERVER['DOCUMENT_ROOT'] . '/scripts/lib_load.php';
Run Code Online (Sandbox Code Playgroud)
在lib内部加载
require dirname(__FILE__) . '/lib_file_a.php';
Run Code Online (Sandbox Code Playgroud)
如果我的问题是正确的