我的情況:我有,我想在一些地方使用的一類,所以我把它高高的目錄樹:如何已包括/所需的腳本使用本地文件
/www/libs/classA/classA.php
它使用一個位於同一目錄中的配置文件,名爲config.ini
,並在構造函數的本地引用它。但是,當我將它從腳本包含到不同的目錄中時,它會嘗試從調用腳本所在的目錄加載配置文件。有什麼方法可以查看包含文件所在的目錄嗎?理想情況下,我可以將腳本移動到不同的目錄,而不對其進行任何更改。
我的情況:我有,我想在一些地方使用的一類,所以我把它高高的目錄樹:如何已包括/所需的腳本使用本地文件
/www/libs/classA/classA.php
它使用一個位於同一目錄中的配置文件,名爲config.ini
,並在構造函數的本地引用它。但是,當我將它從腳本包含到不同的目錄中時,它會嘗試從調用腳本所在的目錄加載配置文件。有什麼方法可以查看包含文件所在的目錄嗎?理想情況下,我可以將腳本移動到不同的目錄,而不對其進行任何更改。
包含/加載文件時應使用絕對路徑。你可以檢索與__FILE__
constant和dirname
function是絕對路徑:
dirname(__FILE__).'/config.ini'
這將分爲五個你config.ini
文件在當前執行的腳本文件位於同一目錄的絕對路徑,所以當被執行的代碼在您的classA.php
腳本文件中,您將獲得/www/libs/classA/config.ini
。
如果參數中沒有路徑信息,您應該能夠從當前文件的目錄中包含/需要一個文件,例如,包括( 'file2.php');.但是我認爲即使你有'./file2.php'),它也會變成相對於第一包含/執行腳本的目錄。
我喜歡dirname(____ FILE ____)...方法,但我相信在一組文件旨在始終部署在同一目錄中的情況下,直接文件包括提升內聚力。