Конфигурационная директива include_path указывает список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделенных двоеточием в Unix или точкой с запятой в Windows[7].
При поиске подключаемых файлов PHP отдельно рассматривает каждое значение в include_path. Он проверяет первый путь, если файл в нем не найден, то он переходит к следующему, и так до тех пор, пока не найдет подключаемый файл, либо вернет E_WARNING или E_ERROR.
Проще говоря, необходимо указать папку, в которой будут искаться подключаемые файлы.
Таким образом, чтобы подключить файлы, в начале страницы, где требуется включение, будет нужно прописать код:
Листинг А. Получение пути к корню сайта. Размещается вначале страницы.
$p = explode('ufo', __DIR__);
echo $p[0];
set_include_path(get_include_path() . PATH_SEPARATOR . $p[0]);
где ufo имя папки из которой вызывается файл. В примере указано ufo, но по факту любое.
Для сайта news и папки ufo в константе __DIR__ будет такой путь:
C:\OSPanel\domains\news\ufo
При помощи функции explode этот путь делится на две части. Разделителем будет служить название каталога, в данном примере ufo. В итоге в $p[0] будет содержаться левая часть:
C:\OSPanel\domains\news\
т.е. путь к корню сайта.
И теперь можно подключать файлы из любых каталогов следующим образом:
include "chat/нужный скрипт"; или include "ufo/нужный скрипт";. Мне кажется это довольно неудобно, хотя и будет работать везде. Поэтому рассмотрим вариант Б.
Вариант Б: использовать $_SERVER['DOCUMENT_ROOT'].
'DOCUMENT_ROOT' это директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера[mnl]. Значение этой переменной дает путь к корню сайта. И подключение файла будет выглядеть так:
include $_SERVER['DOCUMENT_ROOT'].”/нужный файл”;
Как мне кажется, вариант Б более удобен, поэтому в дальнейшем все подключения будут делаться через $_SERVER['DOCUMENT_ROOT'].