
SplFileInfo::isLink() 함수는 파일이 심볼릭 링크인지 아닌지 boolean 타입으로 반환합니다. 하지만 true를 반환하는 경우 실제로 링크인지 아닌지 구분할 수 있는 방법은 있습니다.
1. isLink() 함수와 isRealPath() 함수를 함께 사용 : isLink() 함수가 true를 반환하는 경우, isRealPath() 함수를 사용하여 실제 파일 경로를 확인할 수 있습니다. 만약 실제 파일 경로가 존재하지 않는다면, 해당 파일은 심볼릭 링크입니다.
#hostingforum.kr
php
$file = new SplFileInfo('파일 경로');
if ($file->isLink()) {
$realPath = $file->getRealPath();
if ($realPath !== false) {
// 실제 파일 경로가 존재한다면, 파일은 심볼릭 링크가 아님
} else {
// 실제 파일 경로가 존재하지 않는다면, 파일은 심볼릭 링크
}
}
2. lstat() 함수를 사용 : lstat() 함수는 파일의 정보를 가져올 때 심볼릭 링크를 따라가지 않습니다. 따라서, lstat() 함수를 사용하여 파일의 정보를 가져올 수 있습니다. 만약 파일의 정보가 심볼릭 링크의 정보와 다르다면, 해당 파일은 심볼릭 링크입니다.
#hostingforum.kr
php
$file = new SplFileInfo('파일 경로');
$stat = lstat($file->getPathname());
if ($stat['ino'] !== $stat['st_ino']) {
// 파일의 정보가 심볼릭 링크의 정보와 다르다면, 파일은 심볼릭 링크
}
위 방법을 사용하여, SplFileInfo::isLink() 함수가 true를 반환하는 경우 실제로 링크인지 아닌지 구분할 수 있습니다.
2025-08-11 01:10