Корень сайта для бэкэнд и интерфейса

Предположим, что у меня есть корневая структура файла сайта:

  • frontend / home / username / public_html /
  • backend / home / username / public_html / admin /

В папке frontend есть файл config.php. В этом файле я получаю корень сайта моего сайта следующим образом:

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

Этот файл также включен в оба индексных файла (index.php) в frontend и backend. Но для бэкэнд корнем является / home / username / public_html / admin /, который должен быть фактически / home / username / public_html /. Как это сделать, в одной строке, в config.php?

LE:

Демо-код 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__))); 

Это будет выводиться как на index.php:

  • frontend / home / username / public_html / -> /home/username/public_html
  • backend / home / username / public_html / admin / -> /home/username/public_html

Вы можете использовать

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