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

时间:2013-02-19 10:53:50

标签: php html relative directory

我已经设法自学了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

以下是游戏规则:每个页面首先包含 serverside / initialize.php 文件(PHP包含)。然后,每个页面通过标准HTML href属性包含 styles / styles.css 。然后,每个页面都通过PHP包含 templates / header.php templates / footer.php ,前ALSO包含 templates / navuser.php ,和 templates / navmenu.php

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

我想要的是能够指定文件名而不使用真正的绝对路径,因此如果需要,我可以在我的网站中复制一个模板文件 - 我已查看__DIR__,{{1} },__FILE__,转换变量$ dir作为文档根,但没有成功。我不明白发生了一半的事情。

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

1 个答案:

答案 0 :(得分:2)

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

示例 index.php

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

然后您可以使用该常量:

require ROOT_DIR . '/includes/database.php';
require ROOT_DIR . '/application/controllers/MyController.php';
require ROOT_DIR . '/application/models/MyModel.php';

等等。希望这会有所帮助。