<?php
define('ABSPATH', dirname(__FILE__));
Поместите следующий код в файл, расположенный в корневой папке вашего приложения, и включайте его при каждой загрузке страницы.
Тогда вы всегда можете просто сделать $path = ABSPATH . '/path/to/file.php';
независимо от того, находится ли ваша локальная копия в подкаталоге folder
или нет.
Если в вашем приложении уже есть файл, который включается при каждой загрузке страницы, вы можете просто вставить приведенный выше код в этот файл, и он будет работать.
Просто обратите внимание, что вам может потребоваться добавить дополнительные вызовы dirname()
в зависимости от того, где находится этот файл. Добавьте один для каждого каталога, который вы передаете из корня вашего веб-приложения.
Например, если ваше веб-приложение находится в /webapp/
, а ваше «глобальное включение» находится в /webapp/includes/framework/init.php
, то приведенный выше код необходимо изменить следующим образом:
define('ABSPATH', dirname(dirname(dirname(__FILE__))));
т.е.: 2 дополнительных dirname()
вызова из-за двух дополнительных папок из корня веб-приложения (includes/framework
)
Разъяснение
Приведенный выше код должен быть в одном файле и только в одном файле в вашем веб-приложении. Этот файл должен быть включен при каждой загрузке страницы.
Если у вас уже есть файл, который включен до какой-либо обработки (например, файл конфигурации или другой), вы можете скопировать и вставить этот код в этот файл.
Количество вызовов dirname()
зависит от того, насколько глубоко скопированный и вставленный вами файл
Код в относится к корневому каталогу вашего веб-приложения. Для приведенных выше примеров предположим, что корень вашего веб-приложения представлен ~
.
Если вы скопируете и вставите мой код в ~/abspath.php
, вам потребуется один dirname()
вызов.
Если вы скопируете и вставите мой код в ~/includes/abspath.php
, вам потребуется два dirname()
вызова.
Если вы скопируете и вставите мой код в ~/includes/config/abspath.php
, вам потребуется три dirname()
звонка. Теперь давайте просто скажем, что это его окончательное местоположение.
В ~/index.php
вы делаете следующее:
<?php
require_once('includes/config/abspath.php');
и у вас есть доступ к ABSPATH
.
В ~/dir/someOtherPage.php
вы делаете следующее:
<?php
require_once('../includes/config/abspath.php');
и у вас есть доступ к ABSPATH
.
Вот почему я говорю, что если у вас уже есть файл, который включается при каждой загрузке страницы, проще просто вставить в него вышеуказанный код. Просто убедитесь, что вы изменили количество звонков dirname()
соответственно. Опять же, этот код предназначен для ТОЛЬКО ОДНОГО ФАЙЛА.
Затем получите путь к URL, просто удалите DOCUMENT_ROOT
FROM ABSPATH
:
$docRoot = rtrim($_SERVER['DOCUMENT_ROOT'], '/');
define('RELADDR', substr(ABSPATH, strlen($docRoot));