2011-09-07 5 views
1

저는 PHP를 처음 사용하기 때문에 이것은 매우 간단한 질문입니다. 두 폴더가 있다고 가정 해 봅시다 : FolderA와 FolderB. FolderA 내에 PHP 파일이 있습니다. FolderB 내에 인증서가 있습니다. PHP 파일의 인증서에 상대 경로를 삽입하려면이 경로가 ../FolderB/Certificate.pem입니까?간단한 PHP 경로 질문

도움 주셔서 감사합니다.

답변

3

귀하의 솔루션은 완전히 FolderA에있는 파일이 "포함 트리"의 맨 위에 있는지 여부에 따라 다릅니다.

더 나은 솔루션은 절대 경로가 더 나은 이유

// FolderA/file.php 

// PHP 5.3 only 
$path = realpath(__DIR__ . '/../FolderB/Certificate.pem'); 

// or if stuck with PHP 5.2 or earlier 
$path = dirname(dirname(__FILE__)) . '/FolderB/Certificate.pem'; 

는 설명하기 위해 절대 경로를, 예를 들어, 사용하는 것,이

// FolderA/file.php 
$path = '../FolderB/Certificate.pem'; 

// some-other-file-in-the-root-directory.php 
include 'FolderA/file.php'; 
// $path is now incorrect as it points to 
// ROOT . '../FolderB/Certificate.pem' 
+0

죄송합니다. 상대 경로를 의미했지만 솔루션은 첫 번째 슬래시없이 작동했습니다. PHP에서 다른 점이 없는지 확인하고 싶었습니다. 당신의 도움을 주셔서 감사합니다!! –

+0

이 특별한 경우 절대 경로가 더 좋은 이유는 무엇입니까? – sanmai

+1

@sanmai 다른 곳에서'FolderA/file.php'를 포함하면 경로의 상대성이 바뀝니다. 절대 경로를 사용하면 정확성이 보장됩니다. – Phil

0

이 참 좋습니다. 당신이 set_include_path()에서 자신을 다음 예는 올바른 것입니다 관여하지 않는

/* FolderA/test.php: */ 
var_dump(is_file('../FolderB/Certificate.pem')); 
0

!