Как построить абсолютный путь c в PHP? - PullRequest
0 голосов
/ 07 января 2020

У меня есть веб-сайт, состоящий из нескольких папок, по одной для каждого раздела (информация, новости, блог и т. Д. c ...). В каждой из этих папок есть файл index.php, который должен загружать макет (общий для всех). Они хранятся в другой папке в root, где также находится основной файл index.php (домашняя страница). Итак, у меня есть что-то вроде этого:

root
-index.php (home)
-/layout
--layout files
-/info
--index.php`

Файл индекса в папке /info должен включать макет страницы из /layout. Проблема заключается в том, что файлы макета должны включать другие файлы из других папок. В файлы макета я помещаю это:

include 'contents/page-element.php';

Но если я пытаюсь найти тот же файл page-element.php из файла index.php в папке /info, я должен сделать:

include '../contents/page-element.php';

в go в root и затем в папку /layout.

Я не хочу создавать копию макета для папок, поэтому я попробовал $_SERVER['DOCUMENT_ROOT'], но в некоторых случаях он не работает на локальном хосте и даже на веб-сервере.

Может кто-нибудь мне помочь или сообщить, как я могу построить динамический c абсолютный путь?

1 Ответ

0 голосов
/ 07 января 2020

Используя встроенную константу __DIR__, вы можете получить свой абсолютный path

, распечатав его или сохранив

echo __DIR__;

. Он напечатает что-то подобное для вас

C:\Users\user\Desktop\test

и есть еще одна константа, которая получит абсолютный path для вашего файла, который выполняет команду __FILE__

echo __FILE__;

даст вам такой результат

C:\Users\user\Desktop\test\index.php
...