后端和前端的站点根目录


Site root for backend and frontend

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

  • 前端/首页/用户名/public_html/
  • 后端/主页/用户名/public_html/管理员/

在前端文件夹中有一个名为config.php的文件。在这个文件中,我得到了我的网站的站点根目录,如下所示:

define('ROOT', dirname(__FILE__));

此文件也包含在前端和后端的两个索引文件(索引.php(中。但是对于后端,根是/home/username/public_html/admin/,实际上应该是/home/username/public_html/。如何在一行中,在配置.php中执行此操作?

乐:

演示代码 http://pastebin.com/LGrrJzaV

FILE 为您提供文件的完整路径和文件名。

dirname(( 返回父目录的路径。

因此,如果您使用:

define('ROOT', dirname(__FILE__));

它为您提供了当前脚本位置的目录结构。

要在admin/内并返回上一个文件夹,请执行以下操作:

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

admin/内部的一行中:

define("ROOT", dirname(__FILE__).'/../');

编辑

在一行中对两个位置具有相同的路径:

define("ROOT", (strpos(dirname(__FILE__), "admin")>=0) ? (str_replace("admin", "", dirname(__FILE__))) : (dirname(__FILE__)));

这将在两个索引上输出.php:

  • 前端/首页/用户名/public_html/-> /home/username/public_html
  • 后端/主页/用户名/public_html/管理员/-> /home/username/public_html
您可以使用

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