如何在PHP/HTML中高效快速地编写相对路径?

如何在PHP/HTML中高效快速地编写相对路径?,php,html,directory,relative-path,Php,Html,Directory,Relative Path,我已经自学了PHP/PDO/SQL,但我一辈子都搞不懂PHP和HTML中的相对路径是如何工作的。我有一个多页面的网站,有几个目录和分支,我希望能够创建一个简单的模板,我可以用它来创建新页面,而不必每次都更改到我的样式表和PHP包含的链接,具体取决于目录 我的布局如下: MySite (http://localhost/MySite/) RESOURCES //Not a folder, just here for readability > serverside > i

我已经自学了PHP/PDO/SQL,但我一辈子都搞不懂PHP和HTML中的相对路径是如何工作的。我有一个多页面的网站,有几个目录和分支,我希望能够创建一个简单的模板,我可以用它来创建新页面,而不必每次都更改到我的样式表和PHP包含的链接,具体取决于目录

我的布局如下:

 MySite (http://localhost/MySite/)
   RESOURCES //Not a folder, just here for readability
   > serverside > initialize.php
   > templates  > header.php
                  footer.php
                  navuser.php
                  navmenu.php
   > styles     > styles.css
   > images     > variousImages.png

   PAGES //Not a folder, just here for readability

   > index.php
     login.php
     register.php
     gettingstarted.php

  > you         > settings    > settings.php
                > youraccount.php
                > yourfavourites.php
游戏规则如下:每个页面首先包括服务器端/initialize.php文件(php包含)。然后,每个页面通过一个标准的HTML href属性包含style/styles.css。然后,每个页面都通过PHP包含模板/header.PHP模板/footer.PHP,前者还包含模板/navuser.PHP模板/navmenu.PHP

问题是,如果其中一个页面位于不同的级别(例如,您/settings/settings.php),那么所有这些include和href都必须更改,这似乎会影响include中的include。这是不可能的

我所希望的就是能够指定文件名而不使用真正的绝对路径,这样我就可以在需要时在整个网站上复制一个模板文件-我已经研究了
\uuuu DIR\uuuu
\uu file\uuuu
$\u SERVER['DOCUMENT\u ROOT']
,将变量$DIR转换为文档根,但没有成功。我也不明白发生了什么事


有人能解释一下我的情况吗?我本质上是在寻找关于相对根/链接/文件如何在PHP中工作的完整解释。如何处理更复杂的目录结构?再说一遍,我该怎么办?谢谢

您通常会在index.php文件中设置一个包含绝对路径和绝对URL的常量,然后在includes等文件中引用它们

例如index.php

<?php
define('ROOT_DIR', __DIR__);

等等。希望这有帮助。

如果您有疑问,请写下绝对路径。然后,继续“相对化”它们。然而,绝对路径的问题只是——它们是绝对的。如果有一天我决定上线并从mywebsite.com切换到mywebsite.com,我必须再次改变一切。此外,一些链接无法相对化,因为它们被多个级别上的多个文件使用,而其他链接则相互依赖……如果常量位于index.php文件中,那么同一目录级别上的另一个文件如何确切地知道该常量?因为您通常将index.php用作前端控制器,从那以后一切都会包括在内。
require ROOT_DIR . '/includes/database.php';
require ROOT_DIR . '/application/controllers/MyController.php';
require ROOT_DIR . '/application/models/MyModel.php';