У меня есть файл navbar.php, который находится в папке views/general. Он включает в себя несколько файлов относительного пути.. /controllers/file1.php и т.д.
Я могу включить только файл navbar.php в другие файлы в одной и той же папке просмотра/общей папки. Если я попытаюсь включить его в файл за пределами этого, например views/signup,
включенные пути, содержащиеся в файле navbar.php(../controllers/file1.php и т.д.), больше не будут иметь значения.
Как я могу это решить, поэтому navbar.php можно использовать из любого места?
У меня была аналогичная задача, и я создал один файл, который определяет константы для всех соответствующих путей, которые я хочу, чтобы они могли звонить по мере необходимости. Я включаю этот файл на все мои страницы (я определяю $ urlRoot, чтобы он работал во всех средах и мог перемещаться в разных доменах и т.д.):
Файл: pathData.php (добавлен MENUDIR для вашего примера):
$baseDir = dirname(__DIR__) . '/';
$rootUrl = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/';
define('ROOTURL', $rootUrl);
define('BASEDIR', $baseDir);
define('INCLUDES', $baseDir . 'includes/');
define('INCLUDESURL', ROOTURL . 'includes/');
define('JQUERYURL', ROOTURL . 'includes/jquery/');
define('MENUDIR', ROOTURL . 'views/general/');
Затем в каждом файле я включаю этот файл с include, который включает относительный путь каталога. Например:
include("pathData.php");
or
include("../pathData.php");
or
include("../../pathData.php);
etc.
Таким образом, в вашем случае вы можете (в зависимости от того, где находится файл pathData):
include("../pathData.php");
include(MENUDIR . "navbar.php");
etc...
Вы также можете обобщить все из корневого каталога вашего веб-сайта, используя переменную $_SERVER['DOCUMENT_ROOT']
которая будет находиться в каталоге, где должен располагаться ваш index.php
.
Используйте следующее:
include($_SERVER['DOCUMENT_ROOT'] . 'path/from/root/website/location/to/file.php');
Если вы используете PHP 5. 3+:
include __DIR__ . '/relative/path/from/this/file.php';
__DIR__ - магическая константа, содержащая абсолютный путь к текущему файлу.
Если вы используете более ранние версии PHP:
include dirname(__FILE__) . '/relative/path/from/this/file.php';