2011-06-04 118 views
1

我正在創建一個相當複雜的Web應用程序。我喜歡使用php來幫助減少最終使用的重複代碼的數量,如果您願意,可以創建頁面插件。使用php導航文件結構來動態創建頁面

的代碼段的一個例子是這樣的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>   
     <?php require_once("root/html_classes/head_links.html"); ?> 
     <link href="home/css/home.css" rel="stylesheet" type="text/css" /> 
     <title>Texation</title> 
    </head> 

,你可以看到有在上述截面的<?php ?>參考。由於這個項目將會非常龐大​​,我決定爲所有頁面,腳本,javascript,css等元素組織一個超級組織的文件結構。但它導致我1個小問題。

當我創建上面鏈接的模塊時,它們自己具有對圖像或其他腳本以及它們使用的css文檔的引用,但是這種插入html形式意味着所有目錄路徑都需要爲插入到的每個頁面進行更改,例如,

當我在index.php頁面上使用它們時,menu.html中圖像的路徑將是「root/images/someimage.jpg」,但如果我在登錄腳本上使用它的路徑相同的圖像將需要是「../images/someimage.jpg」

任何人都可以提出一種方法,使這些路徑動態考慮到目錄結構中的currant位置他們是「插入編輯「爲?

我雖然關於使用PHP構建他們像

'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/root/images/someimage.jpg' 

,但不能完全得到那個工作要麼...

感謝您的寶貴時間,任何建議都非常歡迎和讚賞。

+0

感謝所有我設法解決了我的PHP解決方案的問題我錯過了一個「在那裏!很容易做到」 – 2011-06-04 14:45:20

回答

1

如果你在談論資源的路徑,爲什麼不使用絕對路徑?

例如:

/root/images/ = http://domain.com/root/images 
root/images = [Current directory]/root/images 

第二個需要你管理你的網站 第一個是絕對的每一個文件的更新路徑,並屢試不爽。

如果您遇到與您的PHP require相同的問題,您只需使用$ _SERVER ['DOCUMENT_ROOT']。 '/ rest/of/path/from/absolute'

+0

我已經標記爲答案作爲一個很好的解決方案!但我很好奇地使用我的PHP版本。 – 2011-06-04 14:45:56

0

也許我錯過了一些東西,但難道你不能只是創建幾個常量來存儲在<img><a href="">標記中使用的目錄的硬編碼路徑嗎?