1

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

  • 前端 /home/username/public_html/
  • 后端 /home/username/public_html/admin/

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

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

该文件还包含在前端和后端的两个索引文件 (index.php) 中。但是对于后端,根是 /home/username/public_html/admin/,实际上应该是 /home/username/public_html/。我怎样才能做到这一点,在一行中,在 config.php 中?

乐:

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

4

2 回答 2

2

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__)));

这将在 index.php 上输出:

  • 前端/home/username/public_html/ ->/home/username/public_html
  • 后端/home/username/public_html/admin/ ->/home/username/public_html
于 2012-05-21T09:10:55.980 回答
0

你可以使用

define('ROOT', $_SERVER['DOCUMENT_ROOT']);
于 2012-05-21T09:14:36.320 回答