Php 后端和前端的站点根目录

Php 后端和前端的站点根目录,php,Php,假设我有这个网站文件根结构: 前端/home/username/public_html/ 后端/home/username/public\u html/admin/ 在前端文件夹中有一个名为config.php的文件。在这个文件中,我得到了我的网站的根目录,如下所示: define('ROOT', dirname(__FILE__)); 该文件还包含在前端和后端的索引文件(index.php)中。但是对于后端,根目录是/home/username/public_html/admin/,实际

假设我有这个网站文件根结构:

  • 前端/home/username/public_html/
  • 后端/home/username/public\u html/admin/
在前端文件夹中有一个名为config.php的文件。在这个文件中,我得到了我的网站的根目录,如下所示:

define('ROOT', dirname(__FILE__));
该文件还包含在前端和后端的索引文件(index.php)中。但是对于后端,根目录是/home/username/public_html/admin/,实际上应该是/home/username/public_html/。在config.php中,我如何在一行中做到这一点

LE:

define('ROOT', dirname(__FILE__));
$path = dirname(__FILE__);

define("ROOT", $path.'/../');

// Outputs:  /home/username/public_html/
define("ROOT", dirname(__FILE__).'/../');
演示代码提供了文件的完整路径和文件名

返回父目录的路径

因此,如果您使用:

define('ROOT', dirname(__FILE__));
$path = dirname(__FILE__);

define("ROOT", $path.'/../');

// Outputs:  /home/username/public_html/
define("ROOT", dirname(__FILE__).'/../');
它为您提供当前脚本位置的目录结构

位于
admin/
中,并已返回上一个文件夹:

define('ROOT', dirname(__FILE__));
$path = dirname(__FILE__);

define("ROOT", $path.'/../');

// Outputs:  /home/username/public_html/
define("ROOT", dirname(__FILE__).'/../');
在一行内
管理/

define('ROOT', dirname(__FILE__));
$path = dirname(__FILE__);

define("ROOT", $path.'/../');

// Outputs:  /home/username/public_html/
define("ROOT", dirname(__FILE__).'/../');

编辑 一行中两个位置的路径相同:

define("ROOT", (strpos(dirname(__FILE__), "admin")>=0) ? (str_replace("admin", "", dirname(__FILE__))) : (dirname(__FILE__)));
这将在两个index.php上输出:

define('ROOT', dirname(__FILE__));
$path = dirname(__FILE__);

define("ROOT", $path.'/../');

// Outputs:  /home/username/public_html/
define("ROOT", dirname(__FILE__).'/../');
  • 前端/home/username/public_html/->
    /home/username/public_html
  • 后端/home/username/public\u html/admin/->
    /home/username/public\u html
    • 您可以使用

      define('ROOT', $_SERVER['DOCUMENT_ROOT']);
      

      你为什么要把这个放在一行?只需定义FRONTROOT和BACKROOT,并链接到这些位置。如果你想从前端链接到后端(“登录按钮”)等,你也需要这个。即使我设置了一个FRONTROOT和一个BACKROOT,我也只想在我的项目中使用一个config.php文件,通常位于前端。那么?这一个文件有frontroot和backroot。如果你链接到一个前端页面,你会在前面加上“frontroot”,如果你需要链接到一个后端页面,你会使用“backroot”。我想我没有正确地解释这一点。看看这个,我不知道问题出在哪里。不要用肮脏的名字?只要定义你的根就行了。如果您在前端(即使您在后端)查找文件,请使用frontroot。如果您正在根目录的结构中查找文件,请使用它。我理解这一点。但是,当您处于前端或后端时,如何仅获取前端路径?这不会返回文件根目录(如/home/username/public_html/)。您是对的!我猜我在这样一个环境中工作太多了,事实上这是正确的做法——我的错。