2012-05-17 2 views
2

나는 내 수업 중 하나, 즉 PHPass 라이브러리에서 라이브러리를 사용하려고합니다.상대 경로를 사용하여 클래스 포함하기

이 내 기본 디렉토리 구조입니다 : 내가 User_model.php에서 PasswordHash.php을 포함 할

/ (root) 
    /mysite 
     /application 
      /models 
       User_model.php 
      /libraries 
       PasswordHash.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

''\''를 사용하면 "'\'는 문자열의 이스케이프 문자이므로 복잡한 작업이됩니다. '/'에는 그 문제가 없으므로 사용하지 않아도됩니다. – Arjan

+0

/mysite/web/deep/deeper/index.php와 같은 더 깊은 구조에 해당 모델을 포함 시키거나 사용하고 싶다면 문제가 발생하게됩니다! 절대 경로를 사용하여이 문제를 무시할 수 있습니다. – Sliq

답변

1

현재 파싱중인 스크립트가 아닌 현재 작업 디렉토리에 따라 다릅니다. 덤프 시도

getcwd() 

함수 출력은 현재 작업 디렉토리를 알아낼 수 있습니다. 현재 파일 경로를 사용하려면 시도해 볼 수 있습니다.

realpath(__FILE__) 

그리고 상대 경로를 구성 할 수 있습니다. 또한, 슬래시를 혼동하지하기 위해, 당신은 같은 폴더를 별도의 일정 DIRECTORY_SEPARATOR 사용할 수 있습니다 : "/"대신 "\"의

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

아주 좋은 점! – Sliq

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

시도를 사용합니다.

관련 문제