我已經設法教會了自己的PHP/PDO/SQL,但是我不能在我的生活中找出相對路徑在HTML中的工作方式。我有一個包含幾個目錄和分支的多頁網站,我希望能夠創建一個我可以用來創建新頁面的簡單模板,而不必每次都更改鏈接到我的樣式表和PHP包含的內容,具體取決於目錄。如何高效快速地在PHP/HTML中編寫相對路徑?
這裏是我的佈局如下:
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屬性包含styles/styles.css。然後,每個頁面通過PHP包括模板/ header.php文件和模板/ footer.php,與前者還含有模板/ navuser.php和模板/ navmenu.php。
問題是,如果其中一個頁面處於不同的級別(例如you/settings/settings.php),那麼所有這些包括和hrefs必須更改,這似乎影響包含包括。不可能!
所有我想要的是能夠在不使用真正的絕對路徑來指定文件名,所以我可以有一個模板文件,如果需要的話在我的網站上覆制 - 我看着__DIR__
,__FILE__
,$_SERVER['DOCUMENT_ROOT']
,鑄造一個變量$ dir充當文檔根目錄,但沒有成功。我不明白所發生的一半。
任何人都可以闡明我的情況嗎?我基本上是在尋找一個完整的解釋,說明如何在PHP中使用相對的根/鏈接/文件。我如何處理更復雜的目錄結構?再次,我該怎麼辦?謝謝。
如果有疑問,請寫出絕對路徑。然後,保持它們的「相對化」。 – fedorqui 2013-02-19 10:55:46
儘管絕對路徑的問題就在於 - 它們是絕對的。如果我有一天決定上線並從http:// localhost/site /切換到mywebsite.com,我必須再次更改所有內容。此外,某些鏈接無法相對化,因爲它們被多個級別上的多個文件使用,而其他鏈接則相互依賴... – ReactingToAngularVues 2013-02-19 11:08:05