[php]readlink

readlink 함수 설명과 샘플 코드

readlink 함수는 PHP에서 심볼릭 링크의 대상 경로를 읽어오는 함수입니다. 심볼릭 링크는 다른 파일이나 디렉토리를 가리키는 특별한 종류의 링크로, 원본 파일이나 디렉토리에 대한 경로를 제공합니다.

사용법:

string readlink ( string $path )
  • $path: 심볼릭 링크 파일의 경로입니다.

예제:

$link = 'symbolic_link';
if (is_link($link)) {
    $target = readlink($link);
    echo 'Symbolic link "' . $link . '" points to: ' . $target;
}

readlink 함수를 응용한 코드

1. 심볼릭 링크 정보 출력하기

function printLinkInfo($link) {
    if (is_link($link)) {
        $target = readlink($link);
        echo 'Symbolic link "' . $link . '" points to: ' . $target . PHP_EOL;
    } else {
        echo '"' . $link . '" is not a symbolic link.' . PHP_EOL;
    }
}

printLinkInfo('link1');
printLinkInfo('link2');

readlink 함수와 다른 함수 사용하여 응용하는 코드

2. 심볼릭 링크가 가리키는 파일의 정보 출력하기

$link = 'data_link';
if (is_link($link)) {
    $target = readlink($link);
    if (file_exists($target)) {
        echo 'Target file: ' . $target . PHP_EOL;
        echo 'File size: ' . filesize($target) . ' bytes' . PHP_EOL;
        echo 'File last modified: ' . date('Y-m-d H:i:s', filemtime($target)) . PHP_EOL;
    } else {
        echo 'Target file does not exist.' . PHP_EOL;
    }
}

readlink 함수와 조건문, 반복문 사용하는 샘플 코드

3. 디렉토리 내의 심볼릭 링크 목록 출력하기

$directory = './links/';
if (is_dir($directory)) {
    $files = scandir($directory);
    foreach ($files as $file) {
        if ($file !== '.' && $file !== '..') {
            $fullPath = $directory . $file;
            if (is_link($fullPath)) {
                $target = readlink($fullPath);
                echo 'Symbolic link "' . $file . '" points to: ' . $target . PHP_EOL;
            }
        }
    }
}

성능 향상을 위한 팁

  • readlink 함수는 단순히 심볼릭 링크의 대상 경로를 읽어오는 기능이므로 특별히 성능 향상을 고려할 필요는 없습니다.
  • 그러나 대량의 파일을 처리하는 경우 파일 시스템 접근 및 파일 정보 확인과 관련하여 캐싱과 최적화를 고려할 수 있습니다.

게시됨

카테고리

,

작성자