如何从当前脚本以外的基本路径包含PHP脚本?
我有一个PHP应用程序,我正试图包括,但它造成的问题,因为我试图包括它的文件从一个子目录。例如,下面是我尝试使用的目录结构(或多或少):如何从当前脚本以外的基本路径包含PHP脚本?,php,include,directory,Php,Include,Directory,我有一个PHP应用程序,我正试图包括,但它造成的问题,因为我试图包括它的文件从一个子目录。例如,下面是我尝试使用的目录结构(或多或少): /site /scripts /local some_script.php lib_file_a.php lib_file_b.php lib_load.php lib\u load.php有一个include命令,用于文件lib\u file\u a.php和lib\u file\u
/site
/scripts
/local
some_script.php
lib_file_a.php
lib_file_b.php
lib_load.php
lib\u load.php
有一个include
命令,用于文件lib\u file\u a.php
和lib\u file\u b.php
(相对路径)
我想要完成的是从一些脚本.php
中包含lib\u load.php
,但是我包含lib\u load.php
的方式有问题。起初我尝试了require('../../../lib_load.php')代码>
正如您所料,我看到了错误,“无法打开所需的'C:\xampp\htdocs\site\scripts\local\lib\u file_a.php'”。如您所见,PHP试图包含一个不存在的文件。我发现一个堆栈溢出帖子告诉我使用绝对路径,但这没有帮助。接下来我尝试了以下代码:
require(realpath(dirname(__FILE__) . '../../../' . 'lib_load.php'));
然而,这一次,同样的错误又回来了。我做错了什么
编辑:我意识到问题实际上是在库加载器中,它包含基于绝对路径而不是相对路径的文件。(我应该仔细阅读)我通过改变图书馆使用的路径解决了这个问题。如果mod看到此请求,则应关闭此问题。尝试以下操作:
require dirname(__FILE__) . '/../../../lib_load.php');
或者,如果您使用的是PHP5.3或更高版本,请使用此选项(它看起来更好):
包括lib加载
require $_SERVER['DOCUMENT_ROOT'] . '/scripts/lib_load.php';
库内加载
require dirname(__FILE__) . '/lib_file_a.php';
如果我没弄错你的问题
require dirname(__FILE__) . '/lib_file_a.php';