我已经搜索了这样做的方法,所以它可以工作,但它们似乎都没有适用于所有路径,所以我想知道你是否可以给我一个如何做到这一点的方向:
这是结构:
Home Directoy
config.php
index.php
includes/
user_login.php
applicant_track.php
ucp/
index.php
当我尝试在ucp / index.php中包含includes / user_login.php时,它不会让我说它无法找到该文件,我的代码在ucp / index.php中是:
if(!defined('root_path'))
{
define('root_path', realpath(dirname(__FILE__)));
}
include(root_path . '\config.php');
switch($_GET["a"])
{
case null: include(root_path . '\index.php'); break;
case "login": include(root_path . '\includes\user_login.php'); break;
}
这就是我得到的:
Warning: include(E:\xampp\htdocs\aod_panel\ucp\config.php): failed to open stream:
我很乐意就如何解决这个问题提出建议。
答案 0 :(得分:1)
您的根路径未指向项目的实际根目录。你的实际根是someLocation / yourProject。
您定义的根是someLocation / yourProject / includes /
然后,您要将文件包含在另一个文件夹中。因此无法找到它。定义实际项目根路径的根,而不是包含目录。
为此,您可以在配置文件中定义根路径并从那里读取它。
答案 1 :(得分:1)
使用以下路径
define('root_path', realpath(dirname(dirname(__FILE__))));
而不是用于定义真实路径的代码。因为您的文件夹结构是这样的。
请参阅index.php在ucp
文件夹中,但您需要config.php的路径。所以回到一个目录并获取config.php路径。
答案 2 :(得分:0)
这很可能是您的其他脚本之一包含没有正确路径的config.php。使用以下代码设置包含路径
set_include_path(get_include_path() . PATH_SEPARATOR . $root_path);
同时将include更改为require_once以防止多个包含。