Ссылаясь на корневой каталог

0

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

Я разрабатываю веб-сайт со многими динамическими связями, некоторые из которых находятся в начале каждого файла php, где require("global.php"); строка require("global.php"); который делает то, что называется в названии, среди прочего, например, файл css и все остальное на корневом уровне. Проблема, однако, при входе в другой каталог, ссылка на этот файл нарушена.

Традиционно то, что я сделал (это абсолютно глупый метод обхода новичка), создает переменную непосредственно перед требованием " $up котором содержится строка '../' которая повторяется соответственно в зависимости от того, сколько каталогов в глубине файла находится от корня, Поэтому строка должна появиться require($up."global.php"); ,

Я понял, насколько это глупо, и попытался найти способы обойти это. Один из них использует переменную $_SERVER['DOCUMENT_ROOT'] для распечатки корневого каталога, но причина, по которой это не будет работать на 100%, заключается в том, что: а) я разрабатываю веб-сайт на локальной машине, где "root" веб-сайта в разработке находится в подкаталоге на сервере и b) он возвращает весь путь, основанный на местоположении на диске, начиная с D:\и работая таким образом таким образом, что мне не особенно нравится работать с когда дело доходит до разработки веб-сайтов и скорее останется в пределах размещенных каталогов веб-сервера, если это возможно.

Итак, основываясь на том, что я объяснил, есть простой способ получить корневое расположение веб-сайта (независимо от того, находится ли проект в подсерии или реальный корень веб-сервера) в короткой строке, которая чрезвычайно проста в добавить начало каждой ссылки на файл в каждом файле php, независимо от того, какой он уровень каталога?

Благодарю! <3

Теги:
directory
reference
document-root

1 ответ

0

Предположим, у вас есть следующий каталог:

 /srv/website/index.php
 /srv/website/lib/functions.php

Тогда вы можете сделать это:

define("MY_ROOT",     $_SERVER['DOCUMENT_ROOT']);

И использовать его в каждом (включенном) файле относительно:

require (MY_ROOT . "lib/functions.php" );
  • 0
    Он почти работает, однако не учитывает, что так называемый «корень» на самом деле является подкаталогом в реальном корне. Есть ли способ заставить это работать так, чтобы при передаче его на размещенный веб-сервер, где корень веб-сайта становился настоящим корнем, он все еще работает, не нарушая никаких ссылок?
  • 0
    Вы можете настроить константу вручную. (добавив ..\ ) Вам нужно будет только отредактировать define , или вы хотите автоматическое решение? Потому что это будет сложнее имо.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню