Прежде чем я начну, этот вопрос, возможно, был задан раньше, но я либо не знаю, что вводить, чтобы найти его конкретно, и это немного более конкретный случай.
Я разрабатываю веб-сайт со многими динамическими связями, некоторые из которых находятся в начале каждого файла php, где require("global.php");
строка require("global.php");
который делает то, что называется в названии, среди прочего, например, файл css и все остальное на корневом уровне. Проблема, однако, при входе в другой каталог, ссылка на этот файл нарушена.
Традиционно то, что я сделал (это абсолютно глупый метод обхода новичка), создает переменную непосредственно перед требованием " $up
котором содержится строка '../'
которая повторяется соответственно в зависимости от того, сколько каталогов в глубине файла находится от корня, Поэтому строка должна появиться require($up."global.php");
,
Я понял, насколько это глупо, и попытался найти способы обойти это. Один из них использует переменную $_SERVER['DOCUMENT_ROOT']
для распечатки корневого каталога, но причина, по которой это не будет работать на 100%, заключается в том, что: а) я разрабатываю веб-сайт на локальной машине, где "root" веб-сайта в разработке находится в подкаталоге на сервере и b) он возвращает весь путь, основанный на местоположении на диске, начиная с D:\и работая таким образом таким образом, что мне не особенно нравится работать с когда дело доходит до разработки веб-сайтов и скорее останется в пределах размещенных каталогов веб-сервера, если это возможно.
Итак, основываясь на том, что я объяснил, есть простой способ получить корневое расположение веб-сайта (независимо от того, находится ли проект в подсерии или реальный корень веб-сервера) в короткой строке, которая чрезвычайно проста в добавить начало каждой ссылки на файл в каждом файле php, независимо от того, какой он уровень каталога?
Благодарю! <3
Предположим, у вас есть следующий каталог:
/srv/website/index.php
/srv/website/lib/functions.php
Тогда вы можете сделать это:
define("MY_ROOT", $_SERVER['DOCUMENT_ROOT']);
И использовать его в каждом (включенном) файле относительно:
require (MY_ROOT . "lib/functions.php" );
..\
) Вам нужно будет только отредактироватьdefine
, или вы хотите автоматическое решение? Потому что это будет сложнее имо.