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은 폴더로 돌아갈 횟수입니다.
사용할 수 있습니다.realpath
불필요한 부품을 제거하려면:
// One level up
echo str_replace(realpath(dirname(__FILE__) . '/..'), '', realpath(dirname(__FILE__)));
// Two levels etc.
echo str_replace(realpath(dirname(__FILE__) . '/../..'), '', realpath(dirname(__FILE__)));
Windows 에서는, 을 치환합니다.\
와 함께/
필요한 경우 URL에서 확인하십시오.
한 단계 위에서는 다음을 사용했습니다.
str_replace(basename(__DIR__) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
또는 php < 5.3의 경우:
str_replace(basename(dirname(__FILE__)) . '/' . basename(__FILE__), '', realpath(__FILE__)) . '/required.php';
공유 호스팅 환경에 시달리면서도 현재 PHP가 7.0 이하인 경우 Who가 보유하지 않는 경우dirname( __FILE__, 2 );
다음을 사용할 수 있습니다.
function dirname_safe($path, $level = 0){
$dir = explode(DIRECTORY_SEPARATOR, $path);
$level = $level * -1;
if($level == 0) $level = count($dir);
array_splice($dir, $level);
return implode($dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;
}
print_r(dirname_safe(__DIR__, 2));
절대 경로가 있는 경우(다음 예)를 사용합니다.
$img = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT']."/Folder-B/image1.jpg");
표시할 그림이 있는 경우 이 정도면 충분합니다.
echo("<img src='/Folder-B/image1.jpg'>");
언급URL : https://stackoverflow.com/questions/11094776/php-how-to-go-one-level-up-on-dirname-file
'programing' 카테고리의 다른 글
컴파일 오류가 발생하지 않고 vue에서 조건부 템플릿별로 열기 및 닫기 태그를 구분하는 방법은 무엇입니까? (0) | 2022.12.09 |
---|---|
JavaScript 코드에 "No 'Access-Control-Allow-Origin' 헤더는 요청된 리소스에 있습니다" 오류가 표시되지만 Postman은 표시되지 않는 이유는 무엇입니까? (0) | 2022.12.09 |
코틀린의 개인 건설업자 (0) | 2022.12.09 |
Linux에서 Java Application as a Service 실행 (0) | 2022.12.09 |
!중요한 스타일 덮어쓰기 (0) | 2022.12.09 |