relative/absolute 路径问题

Issues with relative/absolute path

我已经搜索了一些方法,所以它会起作用,但是 none 似乎对所有路径都有效,所以我想知道你是否可以给我一个关于如何做到这一点的方向:

这是结构:

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:

我很乐意就如何解决这个问题提出建议。

这很可能是您的其他脚本之一包含没有正确路径的 config.php。使用以下代码设置包含路径

  set_include_path(get_include_path() . PATH_SEPARATOR . $root_path);

同时将包含更改为 require_once 以防止多次包含。

您的根路径没有指向项目的实际根目录。您的实际根是 someLocation/yourProject.

你定义的root是someLocation/yourProject/includes/

那么您想要将文件包含在另一个文件夹中。因此它找不到它。将路径的根定义为实际项目根而不是 includes 目录。

为此,您可以在配置文件中定义根路径并从那里读取它。

使用以下路径

define('root_path', realpath(dirname(dirname(__FILE__))));

而不是你定义真实路径的代码。因为你的文件夹结构是这样的。

看到您的 index.php 在 ucp 文件夹中,但您想要 config.php 的路径。所以返回一个目录并获得 config.php 路径。