현재 위치: > 최신 기사 목록> is_link () 및 realpath () 조합으로 파일의 실제 경로를 얻는 방법? 단계별로 가르쳐주십시오

is_link () 및 realpath () 조합으로 파일의 실제 경로를 얻는 방법? 단계별로 가르쳐주십시오

M66 2025-07-18

PHP 개발에서는 파일 경로 문제, 특히 Symlinks와 관련하여 파일의 실제 경로를 얻는 것이 특히 중요해집니다. 이 기사는 IS_LINK ()RealPath () 함수를 결합하여 파일의 실제 경로를 정확하게 얻는 방법을 자세히 소개합니다.


1. 왜 IS_LINK ()와 RealPath ()를 결합해야합니까?

  • IS_LINK () : 지정된 경로가 상징적 링크인지 결정합니다.

  • RealPath () : 지정된 경로의 절대 경로를 반환하고 모든 상징적 링크를 구문 분석합니다.

RealPath () 만 사용하면 파일의 실제 경로를 직접 얻을 수 있지만 경우에 따라 먼저 상징적 링크인지 결정한 다음 경로를 다루는 방법을 결정하려고합니다.


2. 샘플 코드 설명

 <?php
// 파일 경로가 있다고 가정합니다
$filePath = '/var/www/html/symlink-file';

// 먼저이 경로가 상징적 링크인지 확인하십시오
if (is_link($filePath)) {
    // 그것이 상징적 링크라면,사용 readlink() 링크가 가리키는 경로를 가져옵니다
    $linkTarget = readlink($filePath);
    
    // 다시 사용하십시오 realpath() 링크 대상으로가는 실제 경로를 얻으십시오
    $realPath = realpath($linkTarget);
} else {
    // 그것이 상징적 링크가 아니라면,실제 길을 직접 얻으십시오
    $realPath = realpath($filePath);
}

echo "파일의 실제 경로는입니다: " . $realPath;
?>

위 코드에서 :

  1. IS_LINK ()를 사용하여 파일이 상징적 링크인지 확인하십시오.

  2. 상징적 링크 인 경우 먼저 readLink ()를 사용하여 기호 링크로가는 경로를 얻으십시오.

  3. 그런 다음 RealPath ()를 사용하여 상징적 링크 대상의 절대적인 진정한 경로를 얻으십시오.

  4. 상징적 인 링크가 아닌 경우 RealPath () 에게 직접 전화하여 실제 경로를 얻으십시오.


3. 실제 URL을 기반으로 예제를 사용하십시오

PHP 코드에서 원격 파일 주소를 처리 해야하는 경우 주소에 리디렉션 또는 기호 링크가 포함되면 작동하기 전에 경로를 구문 분석 할 수 있습니다.

샘플 코드 :

 <?php
$url = 'http://m66.net/path/to/symlink';

// 먼저 분석하십시오 URL,경로 부분을 얻으십시오
$parsedUrl = parse_url($url);
$path = $parsedUrl['path'] ?? '';

// 여기서 동일한 경로가 국부적으로 존재한다고 가정합니다,판단하십시오
if (is_link($path)) {
    $linkTarget = readlink($path);
    $realPath = realpath($linkTarget);
} else {
    $realPath = realpath($path);
}

echo "해당 파일의 진정한 경로는 다음과 같습니다: " . $realPath;
?>

위의 코드는 is_link ()realPath ()를 결합하여 URL에서 실제 경로 부분을 얻는 방법을 보여줍니다.


4. 주목할만한 것들

  • RealPath () 에 의해 반환 된 경로는 존재해야하며, 그렇지 않으면 False가 반환됩니다.

  • readlink ()는 상징적 링크에만 사용할 수 있으며 일반 파일을 처리 할 수 없습니다.

  • 원격 URL의 경우 is_link ()realPath ()는 로컬 파일 시스템에 적용되지 않으며 사용해야합니다.


요약하면, is_link ()realPath () 를 결합하면 파일이 상징적 링크인지 더 정확하게 결정하고 경로 오류로 인한 잠재적 문제를 피하기 위해 실제 경로를 얻을 수 있습니다. 이는 파일 작동, 구성 관리 및 기타 시나리오에서 매우 실용적입니다.