Требовать файл с переменной - PullRequest
0 голосов
/ 27 сентября 2011

В настоящее время я использую следующий код для включения файла в мою веб-страницу:

require_once $_SERVER['DOCUMENT_ROOT'] . '/include/file.php';

Однако теперь я отредактировал свою систему, поэтому я ввел URL-адрес в файл данных в корне, что делает другиечасть моего сайта функционирует и позволяет мне использовать разные каталоги.

Короче говоря, я использую заставку на веб-сайте, где корень теперь / каталог, а не в корне, поэтому URL-адрес в моемфайл данных http://www.domain.com/directory.

Итак, мне нужно выяснить, как указать эту строку в каталоге , используя переменную из файла данных, которая содержит URL

Так что $_SERVER['DOCUMENT_ROOT'] становится неактуальным, потому что мне нужно получить данные из переменной в файле данных, который больше НЕ находится в корне.

Это должно быть что-то вроде:

require_once (variable from file a few directories back) + absolute path to file;

Я хочу, чтобы эта строка кода была рассчитана и на будущее, если мне нужно создать сайт с использованием другого каталога, отличного от корневого.

Надеюсь, это имеет смысл!

Ответы [ 2 ]

2 голосов
/ 27 сентября 2011

Создайте SITE_ROOT и используйте его вместо этого. Таким образом, он будет работать с любым изменением каталога.

define('SITE_BASE', '/directory/');
define('SITE_ROOT', $_SERVER['DOCUMENT_ROOT'] . SITE_BASE);

Затем вы можете использовать SITE_BASE для создания ваших URI:

<a href="<?php echo SITE_BASE ?>subdir/">link</a>

и SITE_ROOT для доступа к файлам в системе:

require_once SITE_ROOT . 'include/file.php';
0 голосов
/ 27 сентября 2011

Рассматривали ли вы настройку include_path в вашем файле php.ini?Например, мой собственный файл php.ini имеет include_path = ".:/path/to/web/root", что позволяет мне не беспокоиться о том, где находятся мои файлы, когда включают их.

В вашем случае вы хотели бы установить его на include_path = ".:/path/to/web/root/directory".Если вы не знаете путь к корневому каталогу, просто запустите echo $_SERVER['DOCUMENT_ROOT'];, чтобы найти его.

Это решение "ориентировано на будущее", так как вам нужно только изменить это значение php.ini и всевстает на свои места.

...