PHP dirname(_FILE__)에서 한 단계 위로 올라가는 방법

폴더 구조는 다음과 같습니다.

mydomain.example
->Folder-A
->Folder-B 

Database에서 다음 문자열은 다음과 같습니다.../Folder-B/image1.jpg의 이미지를 가리키고 있습니다.Folder-B.

의 스크립트 내부Folder-A, 사용하고 있습니다.dirname(__FILE__)파일명을 가져오면mydomain.example/Folder-A이 스크립트 안에, 나는 다음과 같은 문자열이 필요합니다.'mydomain.example/Folder-B/image1.jpg.나는 노력했다.

$path=dirname(__FILE__).'/'.'../Folder-B/image1.jpg'; 

이것은 로 표시됩니다.mydomain.com%2FFolder-A%2F..%2FFolder-B%2Fimage1.jpg

이것은 Facebook 공유 버튼용이며 올바른 이미지를 가져오지 못합니다.길을 제대로 잡을 줄 아는 사람?

다음 URL을 알고 싶습니다.mydomain.example%2FFolder-B%2Fimage1.jpg



질문에 대한 답변



PHP < 5.3의 경우:

$upOne = realpath(dirname(__FILE__) . '/..'); 

PHP 5.3~5.6에서는 다음을 사용합니다.

$upOne = realpath(__DIR__ . '/..'); 

PHP > = 7.0에서 다음을 사용합니다.

$upOne = dirname(__DIR__, 1); 



만약 당신이 php 7.0+를 가지고 있다면 당신은 레벨을 사용할 수 있습니다.

dirname( __FILE__, 2 )두 번째 매개변수를 사용하여 되돌아가려는 레벨의 양을 정의할 수 있습니다.

http://php.net/manual/en/function.dirname.php




이거 드셔보세요

dirname(dirname( __ FILE__)) 

편집: 올바른 구문이 아니므로 “./”를 제거했습니다.그게 없으면, 완벽하게 작동합니다.




PHP의 dirname 함수를 사용할 수 있습니다. <?php echo dirname(__DIR__); ?>. 그러면 의 부모 디렉토리의 이름이 나타납니다.__DIR__현재 디렉토리를 저장합니다.




dirname(__DIR__,level); dirname(__DIR__,1); 

level은 폴더로 돌아갈 횟수입니다.