2012-05-17 182 views
2

我試圖在我的一個類中使用庫,即PHPass庫。包括使用相對路徑的類

這是我的基本目錄結構:

/ (root) 
    /mysite 
     /application 
      /models 
       User_model.php 
      /libraries 
       PasswordHash.php 

我想包括在User_model.phpPasswordHash.php。我試着這樣做:

// Load PHPass library 
include_once('..\libraries\PasswordHash.php'); 
$hasher = new PasswordHash(8, TRUE); 

但是PHP找不到文件:

Message: include_once(..\libraries\PasswordHash.php) [function.include-once]: failed to open stream: No such file or directory 
+3

你嘗試了正斜槓(/)嗎? – allaire

+0

使用''''使事情變得複雜,因爲''''也是字符串中的轉義字符。 '/'沒有這個問題,所以這是保存使用。如果你想在/mysite/web/deep/deeper/index.php這樣的更深的結構中包含/使用該模型,那麼你將遇到問題的方式是: – Arjan

+0

!你可以通過使用絕對路徑 – Sliq

回答

1

這取決於你當前的工作目錄,而不是它現在實際解析的腳本。嘗試傾銷

getcwd() 

函數輸出以找出當前工作目錄。爲了使用當前文件路徑,您可以嘗試使用

realpath(__FILE__) 

然後構建它的相對路徑。此外,爲了不混淆斜線,你可以使用DIRECTORY_SEPARATOR常數單獨的文件夾,如:

require_once(realpath(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'classes'.DIRECTORY_SEPARATOR.'class.php') 
+0

非常好的點來覆蓋該問題! – Sliq

1

您應該使用的/,而不是\。

1
include_once('../libraries/PasswordHash.php'); 

嘗試使用「/」而不是「\」。