Прежде чем я начну, этот вопрос, возможно, задавался раньше, но я либо не знаю, что набирать, чтобы найти его конкретно, и это немного более конкретный случай.
Я разрабатываю веб-сайт со многими динамическими связями, некоторые из которых находятся в начале каждого php-файла, где есть строка require("global.php");
который делает то, что указано в имени, среди прочего, такой как файл CSS и все остальное, что находится на корневом уровне. Проблема, однако, при входе в другой каталог, ссылка на этот файл не работает.
Традиционно то, что я сделал (что является абсолютно глупым решением для начинающих) это создать переменную перед вызовом $up
который содержал строку '../'
который повторяется соответственно в зависимости от того, сколько каталогов находится глубоко в файле от корня. Таким образом, линия появится require($up."global.php");
,
Я понял, насколько это глупо, и попытался найти способ обойти это. Один из которых использует переменную $_SERVER['DOCUMENT_ROOT']
распечатать корневой каталог, но причина, по которой это не будет работать на 100%, заключается в том, что а) я занимаюсь разработкой веб-сайта на локальной машине, где «корневой» веб-сайт находится в подкаталоге на сервере, и 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" );
Других решений пока нет …