2012-05-17 181 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'); 

尝试使用“/”而不是“\”。