在對PHP的引用路徑問題研究了一段時間之後,我得出了這個解決方案.
在網站的根目錄下的include檔案夾裡建立global.php檔案
global.php
<?PHP<br />//將目前的目錄轉到根目錄<br />chdir(dirname(dirname(__FILE__)));</p><p>include 'config/config.php';<br />?><br />
根目錄下的include檔案夾中建立config.php檔案
<?PHP<br />//這樣定義後,HTML代碼中的連結前加上WEBSITE_BASE常量就可以變成絕對連結<br />//更換網域名稱或者伺服器時,修改以下代碼就可以了<br />define( 'WEBSITE_BASE', 'http://localhost/GetFootballContent' );</p><p>?><br />
然後,每個PHP檔案需要引用其他檔案的時候,就先用絕對連結的方式引用global.php檔案,這是global.php會將目前的目錄設定為根目錄,隨後引用的檔案只要使用其相對於根目錄的相對路徑就可以了.
舉個例子,比如說根目錄下admin檔案夾中的a.php要引用include檔案夾裡的db_fns.php檔案,則進行用下面的方式進行引用:
include_once ( dirname(__FILE__) . '../include/global.php' );</p><p>require_once ('./include/db_fns.php');<br />
記得使用require_once的方式引用,這樣可以避免多檔案相互引用時出現重複引用的錯誤.
例外,如果php檔案中的html代碼中要引用JavaScript檔案,可以使用以下的方法:
總結,我的這個方案的優點是:
1.所有檔案引用同一個檔案的(比如說db_fns.php檔案)的路徑是一樣的.不同的只是它們引用global檔案時需要使用到相對位址.
2.將PHP檔案中的html代碼的地址絕對化,這樣不管任何檔案從任何位置引用該PHP檔案,其中的HTML代碼中的網址都是正確的.
3.更換網域名稱或者伺服器的時候,只需要在config.php檔案中修改一段代碼就可以了.