2014-09-03 131 views
-7

我的應用程序根目錄中有一個php文件。我可以這樣訪問它:localhost/auth.php是否包含通過文件夾更改PHP的路徑?

我的auth.php在這裏。

include_once("infrastructure/account/AccountManager.php"); 

if(AccountManager::isUserLoggedIn()){ 
    echo '{"user":{"isAuthenticated": true"} }'; 
}else{ 
    echo '{"user":{"isAuthenticated": false} }'; 
} 

我想將auth.php放在根目錄下的用戶文件夾中。 localhost/user/auth.php 而且我移動了auth.php用戶文件夾。但警告發生。

include_once()的:無法打開的基礎設施/帳戶/ AccountManager.php'列入(include_path中= '; C:\ PHP中\梨')

include_once相對路徑通過的文件改變位置?

+0

'include_once( '../基礎設施......')'。因爲你的'auth.php'下了一個文件夾,你的包含路徑就會改變。 – putvande 2014-09-03 08:15:22

+1

你認爲「親戚」一詞的意思是什麼,嗯? – CBroe 2014-09-03 08:15:24

+0

一旦路徑不是絕對的(所以不以'/'開始),那麼它將與當前工作目錄_相關。這可能不是當前腳本的目錄(如果包含它的話),它是腳本跟蹤執行已經開始的目錄。它可能會在'腳本內部的'cd'處被改變,但是在一般情況下 - 它將會是腳本啓動目錄 – 2014-09-03 08:15:37

回答

0

他相對路徑的基礎始終作爲當前工作目錄。

因此,當您將auth.php的位置更改爲「user」文件夾時,執行目錄將更改爲「user」文件夾。

您必須轉到根文件夾才能從根目錄中選擇文件夾。

0

嘗試使用此:

include_once("localhost/infrastructure/account/AccountManager.php"); 

include_once("../infrastructure/account/AccountManager.php"); 

../指當前目錄的父目錄;如果你需要返回兩個級別,你必須使用../../等等。

+0

,但這一次,「/ infrastructure/account」中引用的其他文件正在發出警告。 – barteloma 2014-09-03 08:32:57

+0

由於您將auth.php移至另一個文件夾,auth.php指向的所有文件以及指向auth.php的所有文件都可能輸出錯誤,因此您需要在需要時檢查並修改它們。 – 2014-09-03 08:41:49

0

試試這個

include_once($_SERVER['DOCUMENT_ROOT]."/infrastructure/account/AccountManager.php");