如何从当前脚本以外的基本路径中包含PHP脚本?

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.phpinclude文件命令lib_file_a.phplib_file_b.php(相对路径).

我想做到的是,包括lib_load.phpsome_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看到此请求,则应关闭此问题.

You*_*nse 8

包括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)

如果我的问题是正确的