Как вы используете заголовок require_once для элементов в другой папке? - PullRequest
1 голос
/ 23 сентября 2011

Я использую require_once("header.php"); для всех страниц моего сайта.Однако я чувствую, что могу использовать этот код только для файлов, хранящихся непосредственно в папке public_html.Если я использую код require_once("header.php"); для любых других файлов, расположенных в каталоге (например, рубашки) в public_html, например, у вас есть public_html / shirts / example.php, header.php не загружает изображения, ссылки или любые другиедругие страницы правильно.

Я знаю, что для решения этой проблемы в краткосрочной перспективе я могу создать новый заголовок только для этого каталога и добавить ../ ко всему коду, но я думаю, что есть более простой способ.Кто-нибудь знает, как я могу просто изменить код header.php, чтобы мне не приходилось делать отдельные заголовки?

Спасибо.

1 Ответ

0 голосов
/ 23 сентября 2011

Вы можете добавить к своему include_path .

Либо добавьте текущий каталог, где находится header.php, либо создайте папку с именем include где-то на вашем сайте и добавьте ее в путь включения.

Вы можете обновить include_path в php.ini (самый простой) или сделать это программно следующим образом:

set_include_path(implode(PATH_SEPARATOR, array(
    '/path/to/your/includes',
    get_include_path(),
)));

Программный метод работает хорошо, но если большинство ваших файлов не обслуживаетсячерез общий сценарий (то есть шаблон фронт-контроллера), вам нужно будет скопировать этот код во все ваши файлы, что не идеально.Иногда вы также можете использовать .htaccess для установки include_path, но только если PHP является модулем Apache.

Пока ваша структура довольно статична, нет ничего плохого в том, что включает в себя использование ../ либо.

...