2009-06-11 29 views
0

我的情況:我有,我想在一些地方使用的一類,所以我把它高高的目錄樹:如何已包括/所需的腳本使用本地文件

/www/libs/classA/classA.php 

它使用一個位於同一目錄中的配置文件,名爲config.ini,並在構造函數的本地引用它。但是,當我將它從腳本包含到不同的目錄中時,它會嘗試從調用腳本所在的目錄加載配置文件。有什麼方法可以查看包含文件所在的目錄嗎?理想情況下,我可以將腳本移動到不同的目錄,而不對其進行任何更改。

回答

4

包含/加載文件時應使用絕對路徑。你可以檢索與__FILE__ constantdirname function是絕對路徑:

dirname(__FILE__).'/config.ini' 

這將分爲五個你config.ini文件在當前執行的腳本文件位於同一目錄的絕對路徑,所以當被執行的代碼在您的classA.php腳本文件中,您將獲得/www/libs/classA/config.ini

0

如果參數中沒有路徑信息,您應該能夠從當前文件的目錄中包含/需要一個文件,例如,包括( 'file2.php');.但是我認爲即使你有'./file2.php'),它也會變成相對於第一包含/執行腳本的目錄。

我喜歡dirname(____ FILE ____)...方法,但我相信在一組文件旨在始終部署在同一目錄中的情況下,直接文件包括提升內聚力。