Предположим, что у меня есть корневая структура файла сайта:
В папке 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:
/home/username/public_html
/home/username/public_html
Вы можете использовать
define('ROOT', $_SERVER['DOCUMENT_ROOT']);