如何在PHP/HTML中高效快速地编写相对路径?
我已经自学了PHP/PDO/SQL,但我一辈子都搞不懂PHP和HTML中的相对路径是如何工作的。我有一个多页面的网站,有几个目录和分支,我希望能够创建一个简单的模板,我可以用它来创建新页面,而不必每次都更改到我的样式表和PHP包含的链接,具体取决于目录 我的布局如下:如何在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
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';