Intereting Posts

Получить относительный путь к родительскому каталогу

У меня есть сценарий, когда я хочу вернуть путь к определенному родительскому каталогу. Вот пример папки strcuture ( [something] – это папка)

 index.php [components] header.php footer.php [pages] somePage.php [somePageSubPages] someSubPage.php 

Поэтому мои страницы содержания выглядят примерно так:

 <?php include('components/header.php'); ?> <!-- CONTENT STUFF --> <?php include('components/footer.php'); ?> в <?php include('components/header.php'); ?> <!-- CONTENT STUFF --> <?php include('components/footer.php'); ?> в <?php include('components/header.php'); ?> <!-- CONTENT STUFF --> <?php include('components/footer.php'); ?> 

Это работает для index.php но не для somePage.php и someSubPage.php . То, что я хочу сделать, это создать функцию, возвращающую путь обратно в главную директорию, поэтому я могу добавить это к включенным и другим материалам:

 $relPath = getPathToRoot($rootDirName); include($relPath . 'components/header.php'); 

И функция возвращает только пустую строку или ../../ .

Я думал об использовании __FILE__ а затем просто подсчитывал / -символы между данным $ rootDirName и концом строки. Тем не менее, я хотел бы спросить, является ли это надежным способом и как это будет выглядеть в PHP. (Я не очень много работаю с PHP …)

Solutions Collecting From Web of "Получить относительный путь к родительскому каталогу"

Я бы удостоверился, что вы всегда знаете корень вашего сайта, чтобы вы могли взять его оттуда.

Для этого вы можете пойти как минимум двумя способами:

  • Включите конфигурационный файл, который определяет ваш корневой сайт и добавляет, что root для каждого включает в себя (в случае константы):
    include MY_SITE_ROOT . '/path/to/file.php';
  • Используйте переменную сервера для достижения такой же:
    include $_SERVER['DOCUMENT_ROOT'] . '/path/to/file.php';

Вы можете использовать .. чтобы попасть в родительский каталог:

 <?php // somePage.php include('../components/header.php'); ?>