引言:關(guān)于PERL與PHP中的包含路徑一直是一個(gè)比較難解的問題,主要是與操作系統(tǒng)和WEB服務(wù)器有關(guān),不可能非常智能化的解決這個(gè)路徑問題。相對(duì)于PERL,PHP的路徑好得多,解決起來也輕易得多,因?yàn)镻HP的相對(duì)路徑在PHP程序中的任何場合都可以使用,而不象PERL在某些語句中必須用絕對(duì)路徑而導(dǎo)致移植的極其復(fù)雜。
基于此,在PHP中,我設(shè)計(jì)了一個(gè)絕對(duì)穩(wěn)妥的解決方案,如下所述。
原則:使用相對(duì)路徑,但在相對(duì)路徑中用絕對(duì)路徑(有點(diǎn)繞,待會(huì)兒詳解),一是可以保證可移植性,二是可以方便地修改,三是公式化且結(jié)構(gòu)清楚明了,易于擴(kuò)展。
步驟詳解:1、先確定好一個(gè)程序的根目錄,注重是文件系統(tǒng)下的,不是WEB服務(wù)器下的虛擬目錄,不過一般情況下該目錄下的子目錄的相對(duì)路徑與URL下該目錄的虛擬子目錄是相同的。
2、在定義好的程序根目錄下的每個(gè)子目錄下(其實(shí)不一定是每個(gè),根據(jù)需要)建立一個(gè)settings.php,里面定義一個(gè)變量或是常數(shù)(常數(shù)比較好,因?yàn)樽饔糜虮容^大),如APPROOT,但這個(gè)APPROOT卻不是絕對(duì)路徑,而是該目錄相對(duì)于你指定的程序根目錄的相對(duì)路徑。
3、在此目錄下的所有程序入口文件(也即第一個(gè)包含其它文件的文件,或是答應(yīng)直接在瀏覽器中瀏覽的文件)中第一句寫上require_once('settings.php');,但要注重,所有被包含文件最好不要加此句。